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

init()。初始化层调用。

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

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

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

onExitTransitionDidStart()。退出层而且开始过渡动画时候调用。

cleanup()。层对象被清除时候调用。

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

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

  1. bool HelloWorld::init()
  2. {
  3. if( !Layer::init() )
  4. {
  5. returnfalse;
  6. }
  7. log("HelloWorldinit");
  8. ......
  9. returntrue;
  10. }
  11. void HelloWorld::onEnter()
  12. {
  13. Layer::onEnter();
  14. log("HelloWorldonEnter");
  15. }
  16. voidHelloWorld::onEnterTransitionDidFinish()
  17. {
  18. Layer::onEnterTransitionDidFinish();
  19. log("HelloWorldonEnterTransitionDidFinish");
  20. }
  21. void HelloWorld::onExit()
  22. {
  23. Layer::onExit();
  24. log("HelloWorldonExit");
  25. }
  26. voidHelloWorld::onExitTransitionDidStart()
  27. {
  28. Layer::onExitTransitionDidStart();
  29. log("HelloWorldonExitTransitionDidStart");
  30. }
  31. void HelloWorld::cleanup()
  32. {
  33. Layer::cleanup();
  34. log("HelloWorldcleanup");
  35. }

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

如果HelloWorld是第一个场景,当启动HelloWorld场景时候,它的调用顺序如下图所示:

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

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

  1. react 生命周期函数介绍

    constructor():构造函数 执行:组件加载钱最先调用一次,仅调用一次. 作用:定义状态机变量. 注意:第一个语句必须为super(), 否则会报错:'this' is not allowed ...

  2. VUE3 之 生命周期函数

    1. 概述 老话说的好:天生我材必有用,千金散尽还复来. 言归正传,今天我们来聊一下 VUE 的生命周期函数. 所谓生命周期函数,就是在某一条件下被自动触发的函数. 2. VUE3 生命周期函数介绍 ...

  3. 10. react 基础 ref 的使用 及 React 16 的生命周期函数 及 生命周期函数使用场景

    一. ref 的使用 ( 直接获取 DOM 元素 ) 在 input 标签上 可以使用 ref 属性 获取当前DOM节点 eg: import React , { Component, Fragmen ...

  4. React组件详细介绍及其生命周期函数

    组件的详细说明 通过Reac.createClass({...})创建组件的时候,应该有一个render()方法,也可以在其中添加生命周期函数. render方法 当调用该方法的时候,会检测this. ...

  5. 20Flutter通过TabController定义顶部tab切换,介绍生命周期函数

    基本使用: import 'package:flutter/material.dart'; class TabBarControllerPage extends StatefulWidget { Ta ...

  6. react系列(一)JSX语法、组件概念、生命周期介绍

    JSX React中,推出了一种新的语法取名为JSX,它给了JS中写HTML标签的能力,不需要加引号.JSX的语法看起来是一种模板,然而它在编译以后,会转成JS语法,只是书写过程中的语法糖. JSX的 ...

  7. Activity的生命周期函数

    前言: 上一篇文章写了关于Activity生命周期和生命周期状态的介绍,这一篇文章给大家聊聊Activity生命周期函数. 主Activity: 应用程序的入口一般都是桌面应用程序图标,用户点击应用图 ...

  8. Unity3D学习笔记(一):Unity简介、游戏物体、组件和生命周期函数

    Project(工程.项目):工程是把游戏开发当前所需要的资源归类管理用的. Console控制台:日志.报错.调试,右上角,消息过滤 Assets:资源,存储游戏中一切用到的资源 Library:临 ...

  9. Cocos2d-x Lua中生命周期函数

    场景(Scene)以及所有节点(Node)的生命周期事件如下:enter.进入场景时候触发.enterTransitionFinish.进入场景而且过渡动画结束时候触发.exit.退出场景时候触发 . ...

随机推荐

  1. Viewport解决分辨率适配问题

    Viewport :   字面意思为视图窗口,在移动 web 开发中使用.表示将设备浏览器宽度虚拟成一个特定的值(或计算得出),这样利于移动 web 站点跨设备显示效果基本一致.   基本写法: &l ...

  2. storm0.9.0.1安装

    storm 0.9.x的好处是引入了netty进行网络传输(需要配置),不用再依赖zeromq和jzmq了 1.下载安装zookeeper ... 2.下载安装storm依赖库 JDK1.6及以上 . ...

  3. iOS缓存框架-PINCache解读

    文/Amin706(简书作者)原文链接:http://www.jianshu.com/p/4df5aad0cbd4著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 在项目中总是需要缓存一 ...

  4. BootStrap2学习日记19---缩略图

    缩略图 代码: <ul class="thumbnails"> <li class="span3"><a href="# ...

  5. 开发工具 之 PowerDesigner

    PowerDesigner是一款功能非常强大的建模工具软件,足以与Rose比肩,同样是当今最著名的建模软件之一.Rose是专攻UML对象模型的建模工具,之后才向数据库建模发展,而PowerDesign ...

  6. JavaScript 获取当前时间戳的代码

    avaScript 获取当前时间戳: 第一种方法: 复制代码代码如下: var timestamp = Date.parse(new Date());  结果:1280977330000 第二种方法: ...

  7. eclipse[downloads]

    下载J2EE:http://www.eclipse.org/downloads/ 下载WPT插件:http://download.eclipse.org/webtools/updates 下载TOMC ...

  8. 下拉选择框加listview删除

    package com.downselect; import java.util.ArrayList; import android.R.array; import android.app.Activ ...

  9. Java基础知识强化之IO流笔记76:NIO之 Channel(通道)之间的数据传输

    1. 在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel. (1)trans ...

  10. 【阿里云产品公测】阿里云ECS服务器,PTS网站性能

    作者:阿里云用户321房产网 系统环境:CentOS 6.3 运行组件:Nginx + php + mysql + 缓存加速为eAccelerator 运行网站:基于phpcms开发模板:321房产网 ...