场景:
onEnter: function(){
this._super();
var self = this;
this._listener1 = cc.EventListener.create({
event: cc.EventListener.CUSTOM,
eventName: "HttpEvent",
callback: function(event){
self.onHttpEvent(event.getUserData());
}
});
cc.eventManager.addListener(this._listener1, 1);
},
onExit: function(){
cc.eventManager.removeListener(this._listener1);
this._listener1 = null;
this._super();
},
异步调用:
var event = new cc.EventCustom("HttpEvent");
var userData = {sender: this, type: 1, param: "param"};
event.setUserData(userData);
cc.eventManager.dispatchEvent(event);
这样处理,可以解决异步事件调用的时候,场景已经倍释放的情况。
场景倍释放内存,removeListener会去掉相关event,这样就不监听事件了。