cocos2dx中init()与onEnter()的区别
2015-06-20 15:29
363 查看
init()和onEnter()这俩个方法都是CCNode的方法。其区别如下:
1.其被调用的顺序是先init(),后onEnter()。
2.init()在类的初始化时只会调用一次。
3.onEnter在该类被载入场景的时候被调用,可能会发生多次。
4.CCLayer* cclayer = new MyLayer();
这种情况下,只会触发onEnter。
5.CCLayer* cclayer = MyLayer::create();
这样情况下,既会触发init()方法,也会触发onEnter()方法。
这里说的new会触发onEnter不是说在new中直接或间接的调用了init,而是说:1.create函数内部调用了init方法,而后在addChild的时候间接调用了onEnter。2.直接调用new没有调用init方法,而后在addChild的时候间接调用了onEnter。以上两种情况下,init方法没有被调用。最后,建议不要直接使用new,而是使用静态的create方法,因为该方法中做了更多的事情
1.其被调用的顺序是先init(),后onEnter()。
2.init()在类的初始化时只会调用一次。
3.onEnter在该类被载入场景的时候被调用,可能会发生多次。
4.CCLayer* cclayer = new MyLayer();
这种情况下,只会触发onEnter。
5.CCLayer* cclayer = MyLayer::create();
这样情况下,既会触发init()方法,也会触发onEnter()方法。
这里说的new会触发onEnter不是说在new中直接或间接的调用了init,而是说:1.create函数内部调用了init方法,而后在addChild的时候间接调用了onEnter。2.直接调用new没有调用init方法,而后在addChild的时候间接调用了onEnter。以上两种情况下,init方法没有被调用。最后,建议不要直接使用new,而是使用静态的create方法,因为该方法中做了更多的事情
相关文章推荐
- Cocos2d-x之onEnter()、onEnterTransitionDidFinish()、onExit()、onExitTransitionDidStart()
- cocos2dx单场景和多场景的生命周期
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第八课: Cocos2D-X引擎框架3
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第七课: Cocos2D-X引擎框架2
- 【端午巨献】Cocos2d-x手游Xcode开发记录
- Cocos2d-x 3.0开发(三)点击交互的四种处理
- cocos 帧率测试
- 【少年の轨迹】cocos2d-x3.0中LayerColor的锚点的修改
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第六课: Cocos2D-X引擎框架1
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第五课:Hello World
- cocos2d-x-3.x 源代码框架解析
- cocos2d-x-3.6最新基础
- cocos2dx lua 接微博SDK(四)--lua与java的交互
- cocos2dx  混合模式
- Cocos2d-lua学习笔记之场景跳转
- cocos2dx3.0rc导出自定义类到lua的方法详细步骤
- 我所理解cocos2d-x 3.6 lua -- Cocos如何绑定Lua自定义类
- 【Cocos游戏实战】功夫小子第四课之设置功能和图籍场景的实现
- cocos2d-x 精灵变灰
- windows下搭建cocos2d-js 安卓环境