zoukankan      html  css  js  c++  java
  • Cocos2d-x多场景切换生命周期

    在多个场景切换时候,场景的生命周期会更加复杂。这一节我们介绍一下场景切换生命周期。

    多个场景切换时候分为几种情况:

    情况1,使用pushScene函数从实现HelloWorld场景进入Setting场景。

    情况2,使用replaceScene函数实现从HelloWorld场景进入Setting场景。

    情况3,使用popScene函数从实现Setting场景回到HelloWorld场景。

    我们参考HelloWorld重写Setting层的中几个生命周期函数,代码如下:

     

    [html] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. bool Setting::init()  
    2. {             
    3.     if( !Layer::init() )  
    4.     {  
    5.          returnfalse;  
    6.     }  
    7.    
    8.     log("Settinginit");  
    9.     ......  
    10.     returntrue;  
    11. }  
    12.    
    13. void Setting::onEnter()  
    14. {  
    15.     Layer::onEnter();  
    16.     log("SettingonEnter");  
    17. }  
    18.    
    19. void Setting::onEnterTransitionDidFinish()  
    20. {  
    21.     Layer::onEnterTransitionDidFinish();  
    22.     log("SettingonEnterTransitionDidFinish");  
    23. }  
    24.    
    25. void Setting::onExit()  
    26. {  
    27.     Layer::onExit();  
    28.     log("SettingonExit");  
    29. }  
    30.    
    31. void Setting::onExitTransitionDidStart()  
    32. {  
    33.     Layer::onExitTransitionDidStart();  
    34.     log("SettingonExitTransitionDidStart");  
    35. }  
    36.    
    37. void Setting::cleanup()  
    38. {  
    39.     Layer::cleanup();  
    40.     log("Settingcleanup");  
    41. }  

     

     情况1时候,它的调用顺序如下图所示。

     

    情况2时候,它的调用顺序如下图所示,从图中可见与上面不同是多出HelloWorld中cleanup函数,这也说明replaceScene函数会释放场景对象。

     

     

    情况3时候,它的调用顺序如下图所示,从图中可见popScene函数时候调用Setting中cleanup函数,这说明popScene函数会释放Setting场景对象,当回到HelloWorld场景时候并不会调用init()函数,而是调用onEnter函数。

     

    更多内容请关注Cocos2d-x系列图书《Cocos2d-x实战(卷Ⅰ):C++开发》
    本书交流讨论网站:http://www.cocoagame.net
    欢迎加入cocos2d-x技术讨论群:257760386、327403678
     

     

  • 相关阅读:
    Individual Contest #1 and Private Training #1
    2016 GDCPC 省赛总结
    HDU 4000 Fruit Ninja(树状数组)
    HDU 4009 Transfer water(最小树形图)
    HDU 5176 The Experience of Love
    HDU 2121 Ice_cream’s world II(无定根最小树形图)
    UVA 11183 Teen Girl Squad(最小树形图)
    POJ 3164 Command Network(最小树形图)
    最小树形图
    UVA 10462 Is There A Second Way Left?(次小生成树)
  • 原文地址:https://www.cnblogs.com/iOS-Blog/p/3764568.html
Copyright © 2011-2022 走看看