Cocos2d-x多場景切換生命周期
在多個場景切換時候場景的生命周期會更加複雜。這一節我們介紹一下場景切換生命周期。
多個場景切換時候分為幾種情況
情況1使用pushScene函數從實現HelloWorld場景進入Setting場景。
情況2使用replaceScene函數實現從HelloWorld場景進入Setting場景。
情況3使用popScene函數從實現Setting場景回到HelloWorld場景。
我們參考HelloWorld重寫Setting層的中幾個生命周期函數代碼如下
bool Setting::init() { if( !Layer::init() ) { returnfalse; } log("Settinginit"); ...... returntrue; } void Setting::onEnter() { Layer::onEnter(); log("SettingonEnter"); } void Setting::onEnterTransitionDidFinish() { Layer::onEnterTransitionDidFinish(); log("SettingonEnterTransitionDidFinish"); } void Setting::onExit() { Layer::onExit(); log("SettingonExit"); } void Setting::onExitTransitionDidStart() { Layer::onExitTransitionDidStart(); log("SettingonExitTransitionDidStart"); } void Setting::cleanup() { Layer::cleanup(); log("Settingcleanup"); }
情況1時候它的調用順序如下圖所示。
情況2時候它的調用順序如下圖所示從圖中可見與上麵不同是多出HelloWorld中cleanup函數這也說明replaceScene函數會釋放場景對象。
情況3時候它的調用順序如下圖所示從圖中可見popScene函數時候調用Setting中cleanup函數這說明popScene函數會釋放Setting場景對象當回到HelloWorld場景時候並不會調用init()函數而是調用onEnter函數。
《Cocos2d-x實戰 C++卷》現已上線各大商店均已開售
京東https://item.jd.com/11584534.html
當當https://product.dangdang.com/23606265.html
互動出版網https://product.china-pub.com/3770734
《Cocos2d-x實戰 C++卷》源碼及樣章下載地址
源碼下載地址https://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1
樣章下載地址https://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1

最後更新:2017-04-03 08:26:21