首先添加几个对象
NotificationCenterLayer* layer1 = NotificationCenterLayer::create(1);
NotificationCenterLayer* layer2 = NotificationCenterLayer::create(2);
NotificationCenterLayer* layer3 = NotificationCenterLayer::create(3);
addChild(layer1);
addChild(layer2);
addChild(layer3);
在NoticationCenterLayer的初始化函数里注册消息
bool NotificationCenterLayer::init(int index)
{
if(!CCLayer::init()){
return false;
}
CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(NotificationCenterLayer::showNotification), "notificationCenterTest", (CCObject*)index);
return true;
}
void NotificationCenterLayer::showNotification(CCObject* sender)
{
CCLOG("notification center call =========%d", (int)sender);
}
消息参数分别为类对象,回调函数,消息名称,消息参数
注册完毕之后执行post函数调用
CCNotificationCenter::sharedNotificationCenter()->postNotification("notificationCenterTest", NULL);
打印出来的消息是
notification center call =========1
notification center call =========2
notification center call =========3
如果在后面加上参数,例如
CCNotificationCenter::sharedNotificationCenter()->postNotification("notificationCenterTest", (CCObject*)2);
则只会打印
notification center call =========2
如果填入的参数没有被注册过的话,则不执行