cocos2dx:CCNotificationCenter如何在工程中创建、使用并去除通知
cocos2dx:CCNotificationCenter如何在工程中创建、使用并去除通知
设备/引擎:Mac(11.6)/cocos
开发工具:Xcode(13.0)
开发需求:cocos2dx:通过CCNotificationCenter在工程中创建、使用并去除通知
工程中除了直接调用指定函数来实现功能外,我们还可以通过在指定位置通过通知来响应特定的功能。
一个可用有效的通知需要我们创建、调用、移除三步缺一不可
1.创建通知-addObserver
函数定义
CCNotificationCenter::addObserver(CCObject *target,
SEL_CallFuncO selector,
const char *name,
CCObject *obj)
四个参数:通知对象的目标(为谁通知)、需要运行的函数、通知名称、对象
一般工程中写法如下
#define kGameCallback "game.notification"
CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(GameScene::gameLayer), kGameCallback, NULL);
注:一般需要放在初始化阶段,可以放在init()或onEnter()函数中
2.响应通知-postNotification
函数定义
CCNotificationCenter::postNotification(const char *name)
实际工程中写法
CCNotificationCenter::sharedNotificationCenter()->postNotification("game.notification");
此方法比较好理解,我们在需要触发通知的时候调用即可
3.移除通知-removeObserver
函数定义
CCNotificationCenter::removeObserver(CCObject *target,const char *name)
工程中代码
CCNotificationCenter::sharedNotificationCenter()->removeObserver(this, kGameCallback);
注:我们必须要对创建的通知进行移除,一般在程序运行完之后处理即可,一般可以放在onExit()函数中
cocos2dx:CCNotificationCenter此方法在调用特定函数时还是比较方便不易出错的,一定要记得对通知进行移除,保证通知名的一致性。
希望能给大家带来帮助!!!有什么问题需要讨论的可以评论私信欢迎讨论~