请问在creator中如何不依赖节点,在两个文件间发送消息?

emit和dispatch都需要有一个常驻节点,而处理服务端返回的消息是在一个统一的文件中,然后再派发到各个模块的文件中,这个派发过程如果每次都需要常驻节点会比较麻烦,想请问下如何不依赖节点就能在两个文件间传递消息?

cc.game.on???

http://forum.cocos.com/t/7-15/37857

看看能不能帮到你,这个可以不依赖节点,只要你把事件管理器保存到window,然后需要的时候发送事件就可以了

// 全局通知
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赞