![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN0LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90TUPFTRE90MjRUT4FEVkZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39zM2YTO0kDMzIDNwMDM1EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
HelloWorldScene.h:
我們新增了兩個函數,一個用于接收消息的回調函數,一個用于釋出消息,當
然,通常消息的訂閱者和消息的釋出者不會是同一對象,這裡隻是為了簡單才放
到一起。
HelloWorldScene.cpp(部分修改代碼):
在init函數裡,訂閱了一個名為“test”的消息,并且建立了一個菜單,用于釋出消息,現在用調試模式運作項目,效果如圖:
單擊菜單,我們将看到以下日志輸出:
在這個例子中,使用消息訂閱有點多餘
但是,消息訂閱不僅僅能用于同一個CCLayer下的對象,它最強大的功能在于可以跨越不同的CCLayer進行消息訂閱和釋出。
接下來,我們看下兩個CCLayer之間如何進行消息訂閱和釋出。
建立一個新的類,命名為OtherLayer,代碼如下:
OtherLayer.h
OtherLayer.cpp:
修改HelloWorldScene.cpp:
現在調試模式運作項目,點選菜單之後,在日志中顯示: