Bugfixing - unsubscribing game related topics, to prevent double calls and leaking references, added offAll method to nc. fixes no rendering bug

This commit is contained in:
logsol 2014-03-31 05:05:32 +02:00
parent 40e396fc23
commit 39f684315b
8 changed files with 57 additions and 19 deletions

View file

@ -12,21 +12,24 @@ function (DomController, Settings, Exception, Nc) {
this.canvas = null;
this.debugMode = false;
Nc.on(Nc.ns.client.view.mesh.create, this.createMesh, this);
Nc.on(Nc.ns.client.view.animatedMesh.create, this.createAnimatedMesh, this);
Nc.on(Nc.ns.client.view.mesh.add, this.addMesh, this);
Nc.on(Nc.ns.client.view.mesh.remove, this.removeMesh, this);
Nc.on(Nc.ns.client.view.mesh.update, this.updateMesh, this);
this.ncTokens = [
Nc.on(Nc.ns.client.view.mesh.create, this.createMesh, this),
Nc.on(Nc.ns.client.view.animatedMesh.create, this.createAnimatedMesh, this),
Nc.on(Nc.ns.client.view.mesh.add, this.addMesh, this),
Nc.on(Nc.ns.client.view.mesh.remove, this.removeMesh, this),
Nc.on(Nc.ns.client.view.mesh.update, this.updateMesh, this),
Nc.on(Nc.ns.client.view.fullscreen.change, this.onFullscreenChange, this);
Nc.on(Nc.ns.client.view.debugMode.toggle, this.onToggleDebugMode, this);
Nc.on(Nc.ns.client.view.fullscreen.change, this.onFullscreenChange, this),
Nc.on(Nc.ns.client.view.debugMode.toggle, this.onToggleDebugMode, this),
Nc.on(Nc.ns.client.view.playerInfo.createAndAdd, this.onCreateAndAddPlayerInfo, this);
Nc.on(Nc.ns.client.view.playerInfo.update, this.onUpdatePlayerInfo, this);
Nc.on(Nc.ns.client.view.playerInfo.remove, this.onRemovePlayerInfo, this);
Nc.on(Nc.ns.client.view.playerInfo.createAndAdd, this.onCreateAndAddPlayerInfo, this),
Nc.on(Nc.ns.client.view.playerInfo.update, this.onUpdatePlayerInfo, this),
Nc.on(Nc.ns.client.view.playerInfo.remove, this.onRemovePlayerInfo, this),
Nc.on(Nc.ns.client.view.preloadBar.update, this.onUpdateLoader, this),
];
Nc.on(Nc.ns.client.view.preloadBar.update, this.onUpdateLoader, this);
}
AbstractView.prototype.isWebGlEnabled = function () {
@ -152,5 +155,11 @@ function (DomController, Settings, Exception, Nc) {
throw new Exception('Abstract Function onUpdateLoader not overwritten');
};
AbstractView.prototype.destroy = function() {
for (var i = 0; i < this.ncTokens.length; i++) {
Nc.off(this.ncTokens[i]);
};
};
return AbstractView;
});

View file

@ -42,7 +42,7 @@ function (Parent, DomController, PIXI, Settings, Nc) {
console.log('CanvasRenderer - not using WebGL!')
}
this.stage = new PIXI.Stage(/*0x333333*/);
this.stage = new PIXI.Stage(0x333333);
this.initCamera();
this.initInfo();
@ -305,8 +305,15 @@ function (Parent, DomController, PIXI, Settings, Nc) {
this.loader.visible = progress < 100;
};
PixiView.prototype.test = function() {
console.log(this.stage.children)
PixiView.prototype.destroy = function() {
for (var i = 0; i < this.stage.children.length; i++) {
this.stage.removeChild(this.stage.children[i]);
}
this.renderer.render(this.stage);
Parent.prototype.destroy.call(this);
};
return PixiView;