emit和dispatch都需要有一个常驻节点,而处理服务端返回的消息是在一个统一的文件中,然后再派发到各个模块的文件中,这个派发过程如果每次都需要常驻节点会比较麻烦,想请问下如何不依赖节点就能在两个文件间传递消息?
cc.game.on???
// 全局通知
window.Notification = {
_eventMap: [],
on: function(type, callback, target) {
if (this._eventMap[type] === undefined) {
this._eventMap[type] = [];
}
this._eventMap[type].push({ callback: callback, target: target });
},
emit: function(type, parameter) {
var array = this._eventMap[type];
if (array === undefined) return;
for (var i = 0; i < array.length; i++) {
var element = array[i];
if (element) element.callback.call(element.target, parameter);
}
},
off: function(type, callback) {
var array = this._eventMap[type];
if (array === undefined) return;
for (var i = 0; i < array.length; i++) {
var element = array[i];
if (element && element.callback === callback) {
array[i] = undefined;
break;
}
}
},
offType: function(type) {
this._eventMap[type] = undefined;
},
};
2赞