Cocos2d-x场景生命周期函数介绍

层(Layer)的生命周期函数有例如以下:

init()。初始化层调用。

onEnter()。进入层时候调用。

onEnterTransitionDidFinish()。进入层并且过渡动画结束时候调用。

onExit()。退出层时候调用。

onExitTransitionDidStart()。

退出层并且開始过渡动画时候调用。

cleanup()。

层对象被清除时候调用。

提示  层(Layer)继承于节点(Node),这些生命周期函数根本上是从Node继承而来。其实全部Node对象(包含:场景、层、精灵等)都有这些函数。仅仅要是子类化这些类都能够重写这些函数,来处理这些对象的不同生命周期阶段事件。

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

bool HelloWorld::init()
{
    if( !Layer::init() )
    {
         returnfalse;
    }

    log("HelloWorldinit");
    ......
    returntrue;
}

void HelloWorld::onEnter()
{
    Layer::onEnter();
    log("HelloWorldonEnter");
}

voidHelloWorld::onEnterTransitionDidFinish()
{
    Layer::onEnterTransitionDidFinish();
    log("HelloWorldonEnterTransitionDidFinish");
}

void HelloWorld::onExit()
{
    Layer::onExit();
    log("HelloWorldonExit");
}

voidHelloWorld::onExitTransitionDidStart()
{
    Layer::onExitTransitionDidStart();
    log("HelloWorldonExitTransitionDidStart");
}

void HelloWorld::cleanup()
{
    Layer::cleanup();
    log("HelloWorldcleanup");
}
 

注意 在重写层生命周期函数中,第一行代码应该是调用父类的函数。比如HelloWorld::onEnter()中第一行应该是Layer::onEnter()函数,假设不调用父类的函数可能会导致层中动画、动作或计划无法运行。

假设HelloWorld是第一个场景,当启动HelloWorld场景时候,它的调用顺序例如以下图所看到的:

很多其它内容请关注最新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-08-10 09:55:25

Cocos2d-x场景生命周期函数介绍的相关文章

react 生命周期函数介绍

constructor():构造函数 执行:组件加载钱最先调用一次,仅调用一次. 作用:定义状态机变量. 注意:第一个语句必须为super(), 否则会报错:'this' is not allowed before super() constructor(props) { super(props); this.state = { content:null, } } componentWillMount() 执行:组件初始渲染(render()被调用前)前调用,仅调用一次. 作用:如果这个函数调用

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

Fragment中生命周期函数的介绍

1)第一次启动:onCreate->onAttach->onCreate->onCreateView->onActivityCreated->onStart->onResume->onResume 2)按下返回键:onPause->onPause->onStop->onStop->onDestroyView->onDestroy->onDetach->onDestroy 恢复时:因为按下返回键直接销毁了,所以恢复的时候会从

Activity生命周期函数、onSaveInstanceState()和onRestoreInstanceState()的介绍

本文涉及了Activity中的 onSaveInstanceState() 和 onRestoreInstanceState()方法,需要注意的他们并不是生命周期方法.我放在这是为了整合起来讲解. 一.生命周期中的方法调用时机 本文转自:http://blog.csdn.net/android_tutor/article/details/5772285 1) 首次执行时执行:onCreate()->onStart()->onResume() 2) 部分可见(被对话框等遮挡)时执行:onPaus

React生命周期函数的使用场景

使用shouldComponentUpdate( ) 生命周期函数,减少render函数的执行,减少对未发生改变的DOM结点的重复渲染. shouldComponentUpdate(nextProps, nextState) { if(nextProps.content !== this.props.content) { return true }else { return false } } render() { console.log('child render') const { cont

react教程(一)JSX语法、组件概念、生命周期介绍

JSX React中,推出了一种新的语法取名为JSX,它给了JS中写HTML标签的能力,不需要加引号.JSX的语法看起来是一种模板,然而它在编译以后,会转成JS语法,只是书写过程中的语法糖. JSX的解析器会帮我们读取这种语法并加以处理. 下面是一个简单的例子. const element = <h1 className="greeting">Hello, world!</h1>; 其实相当于如下的代码: const element = React.create

Cocos2d-x Lua中生命周期函数

场景(Scene)以及所有节点(Node)的生命周期事件如下:enter.进入场景时候触发.enterTransitionFinish.进入场景而且过渡动画结束时候触发.exit.退出场景时候触发 .exitTransitionDidStart.退出场景而且开始过渡动画时候触发.cleanup.场景对象被清除时候触发.提示  GameScene场景中的(Scene)继承于节点(Node),这些生命周期事件根本上是从Node继承而来.事实上所有Node对象(包括:场景.层.精灵等)都有这些事件,具

vue 生命周期函数

测试: activated() { console.log('activated') //只刷新数据,不改变整体的缓存 this.getList() }, mounted () { this.getList() }, deactivated () { //清除keep-alive的缓存 console.log('deactivated') // this.$destroy(true) // 这里我们并没有清楚keep-alive缓存 }, beforeDestroy () { console.l

axios,vue-echarts, async, vue 图表数据处理; axios 跨域代理; 异步同步请求接口;生命周期函数

1.vue-echarts 安装和组件引用 插件官网 https://github.com/ecomfe/vue-echarts 安装 npm install eacharts vue-echarts 页面引入 import ECharts from 'vue-echarts' import ECharts from 'vue-echarts' import 'echarts/lib/chart/line' // 折线图 import "echarts/lib/component/title&q