creator保留-x 中NotificationCenter 这种观察者模式了吗

node中提供了 emit 和 on 来发射和监听事件 但是貌似不是一个全局的 而且依赖node节点

自己做一个不就好了

var NotificationCenter = new cc.EventTarget();

done.

cocos2d-x的EventManager還在

var listener = new cc.EventListener(cc.EventListener.CUSTOM, ‘xxxxxx’, callback);
cc.eventManager.addListener(listener, this.node)

任意Node下
var event = new cc.Event.EventCustom(‘xxxxxx’, true);
event.detail = value;
this.node.dispatchEvent(event);

就行了

這好處會隨著node destroy後 一起被砍掉

如果没有node我想发射事件怎么做啊

var NotificationCenter = new cc.EventTarget();
NotificationCenter.on('shit', function () {
  cc.log('ping--pong--');
});
// ...
NotificationCenter.emit('shit');

谢谢谢谢 新年好新年好

哈哈,挺好的,还有人记得我四五年前写的NotificationCenter呀。用 @jare 提供的方案吧,他们新写的event派发机制更灵活了。

想问下 那在ts中应该怎么样写 ts小白

mark住