cocos --notification center

2016-10-11  本文已影响0人  godnotking

本文参考Cocos2d-x CCNotificationCenter 通知中心


在不同的类之间传递参数,比如两个不同的layer之间参数的传递,一个layer调用另一个layer上的函数。


这个类位于cocos2dx/support
这个是一个单例类
单例对象的获取:

/** Gets the single instance of CCNotificationCenter. */ static CCNotificationCenter *sharedNotificationCenter(void);

添加监听:

void addObserver (CCObject *target, SEL_CallFuncO selector, const char* name, CCObject *obj);

例如:

CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(HelloWorld::myNotification), "customString", NULL); //handle notification void HelloWorld::myNotification(CCObject *obj) { CCLog("Get Notificaiton ID:%d", (int)obj); }

发送通知:

void postNotification(const char *name); void postNotification(const char *name, CCObject *object);

例如:

CCNotificationCenter::sharedNotificationCenter()->postNotification("customString", (CCObject*)1);


注意:一般的在接受通知的一方在接受完通知后需要remove监听
一定要先注册监听,然后发送消息,这样才可以实现数据的传递。

上一篇下一篇

猜你喜欢

热点阅读