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函数。

很多其它内容请关注最新Cocos图书《Cocos2d-x实战 C++卷》

本书交流讨论站点:http://www.cocoagame.net

很多其它精彩视频课程请关注智捷课堂Cocos课程:http://v.51work6.com

欢迎增加Cocos2d-x技术讨论群:257760386

《Cocos2d-x实战 C++卷》现已上线,各大商店均已开售:

京东:http://item.jd.com/11584534.html

亚马逊:http://www.amazon.cn/Cocos2d-x%E5%AE%9E%E6%88%98-C-%E5%8D%B7-%E5%85%B3%E4%B8%9C%E5%8D%87/dp/B00PTYWTLU

当当:http://product.dangdang.com/23606265.html

互动出版网:http://product.china-pub.com/3770734

《Cocos2d-x实战 C++卷》源代码及样章下载地址:

源代码下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1

样章下载地址:http://51work6.com/forum.php?

mod=viewthread&tid=1157&extra=page%3D1

欢迎关注智捷iOS课堂微信公共平台

时间: 2024-12-26 01:11:40

Cocos2d-x多场景切换生命周期的相关文章

Cocos2d-x Lua中多场景切换生命周期

在多个场景切换时候,场景的生命周期会更加复杂.这一节我们介绍一下场景切换生命周期.多个场景切换时候分为几种情况:情况1,使用pushScene函数从实现GameScene场景进入SettingScene场景.情况2,使用replaceScene函数实现从GameScene场景进入SettingScene场景.情况3,使用popScene函数从实现SettingScene场景回到GameScene场景.我们参考GameScene重写SettingScene的中几个生命周期函数,代码如下: [htm

Cocos2d-x 场景的生命周期

***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************** 又是一年毕业季啊... 毕业的学长学姐们分享各种经验--考研.考公.培训 ,巴拉巴拉.... 继续做我的cocos2d-x吧 今天看一看场景的生命周期(这种基础东西,实在不该现在才注意到o(╯□╰)o) 这个生命周期,其实很重要,比如,在播放背景音乐的时候,什么

Cocos2d-x3.2 场景的生命周期

//GameScene.h #include "cocos2d.h" USING_NS_CC; class GameScene : public cocos2d::Layer { public:     GameScene(void);     ~GameScene(void);          static cocos2d::Scene* createScene();          virtual bool init();          virtual void onEnt

Android横竖屏切换生命周期

转自xiaoQLuhttp://www.cnblogs.com/xiaoQLu/p/3324503.html 开源帮助android获得了飞速的发展,开源也导致了数不清的碎片问题.android的前期系统就是一个半成品,不成熟的系统以及google的快速迭代开发,导致厂家完全跟不上google的步伐,你2.3的bug还没改完,4.0就出来了,4.0的bug还在处理,4.1出来了,最后的结果就是,手机厂家给每部手机一个系统版本,并且不能升级.最后苦逼的就是广大的程序猿们,你不得不考虑从2.1到4.

横竖屏切换Activity的生命周期

(1)为了防止横竖屏切换 生命周期会发生变化 所以把Activity配置如下   android:screenOrientation="portrait" (2)为了生命周期不变化 android:configChanges="orientation|keyboardHidden|screenSize"

Cocos2d-x学习笔记(九)场景切换

这里只介绍两个简单的两个场景相互切换的方法. void pushScene(Scene *sn)和void popScene(Scene *sn)是一对.前者将当前场景放入到场景堆栈中,并切换到下一个场景:而后者则是回到堆栈顶的场景(一般是上一个场景).另外,这里的堆栈的原型是Vector<Scene*>.通常,他们都是通过事件回调来触发的. 下边的代码是将当前场景压入堆栈,并自动切换到下一个场景(其实,实质是在回到函数里创建了一个新场景^_^): MenuItemImage *setting

Service的生命周期与Activity生命周期区别

组件的生命周期 应用程序组件都有一个生命周期,从响应Intent的Android实例开始到这个实例被销毁.在这期间,他们或许有效或许无效,有效时或许对用户可见或许不可见.下面我们就来讨论四个基本组件的生命周期,包括在生命周期内的各种状态,以及状态之间的转换.这几种状态可能的结果是:进程让他们停止, 然后实例被销毁.  一.activity生命周期     一个activity有三个基本的状态:  @ 当activity在前台运行时(在activity当前任务的堆栈顶),为活动或者运行状态.这时a

quick cocos2d x场景切换的生命周期函数调用学习

先上一个场景的基本模版: 1 local ModelScene = class("ModelScene", function() 2 return display.newScene("ModelScene") 3 end) 4 5 function ModelScene:ctor() 6 self.sceneName = "ModelScene" 7 -- 注册点击事件监听 8 self.layer = display.newLayer() 9

无废话Android之activity的生命周期、activity的启动模式、activity横竖屏切换的生命周期、开启新的activity获取他的返回值、利用广播实现ip拨号、短信接收广播、短信监听器(6)

1.activity的生命周期 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环: (1)Activity的完整生命周期 自第一次调用onCreate()开始,直到调用onDestory()为止.Activity在onCreate()中设置所有“全局”状态以完成初始化. 而在onDestory()中释放所有系统资源.例如,如果Activity有一个线程在后台运行从网络下载数据,它会在onCreate()创建线程, 而在onDestory()销