• Cocos2d-x CCNotificationCenter 通知中心


    相信接触过ios开发的人来说对NSNotificationCenter都不陌生。而在cocos2d-x中也参照这个类,提供了CCNotificationCenter这个类,用作通知中心。

    那么NotificationCenter的介绍请看这篇文章:点击打开链接

    而我主要是使用NotificationCenter 进行不同类之间的参数传递。(譬如说在两个layer之间进行参数的传递)

    下面对这个CCNotificationCenter类如何使用进行简单的介绍。

    1、首先这个类的位置:cocos2dx/support

    2、

    注意这是一个单例类

    使用时要获取到单例对象:

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

    发送通知:

    主要用到的两个方法:

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


    例子:

    // Define this at the header
    #define MY_NOTIFICATION "MY_NOTIFICATION"
     CCNotificationCenter::sharedNotificationCenter()->postNotification(MY_NOTIFICATION, (CCObject*)1);

    接收通知(添加监听):

    方法:

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


    例子:

    CCNotificationCenter::sharedNotificationCenter()->addObserver(this, callfuncO_selector(HelloWorld::myNotification), MY_NOTIFICATION, NULL);
    // Handle the notification
    void HelloWorld::myNotification(CCObject* obj)
    {
        CCLOG("Notification achieved. ID: %i", (int)obj);
    }

    注意:一般的在接受通知的一方在接受完通知后需要remove监听。

    方法:

    void removeObserver(CCObject *target,const char *name);
    
    int removeAllObservers(CCObject *target);

    (注意第二个方法: returns the number of observers removed)

    例子:

    HelloWorld::~HelloWorld()
    {
        CCNotificationCenter::sharedNotificationCenter()->removeObserver(this, MY_NOTIFICATION);
        
    //    CCNotificationCenter::sharedNotificationCenter()->removeAllObservers(this);
    }


    很简单吧!

    参考文章: http://www.plungeinteractive.com/blog/2012/09/20/notification-center-extension-for-cocos2d-x/


  • 相关阅读:
    Icinga使用总结
    Linux入门:usermod
    JMeter入门(01)概念和样例
    英语日常词汇:living-room、dining-room vs dining hall
    安装 docker-compose
    CentOS7下安装python-pip
    JMeter入门(03)多台JMeter联合测试
    jmeter入门(02)测试报告各项指标含义
    istio入门(01)istio的优势在哪里?
    Docker学习笔记
  • 原文地址:https://www.cnblogs.com/james1207/p/3323220.html
Copyright © 2020-2023  润新知