init()和onEnter()方法的区别

init()和onEnter()这俩个方法都是CCNode的方法。其区别如下:


1.其被调用的顺序是先init(),后onEnter()。


2.init()在类的初始化时只会调用一次。


3.onEnter在该类被载入场景的时候被调用,可能会发生多次。


4.CCLayer* cclayer = new MyLayer();

这种情况下,只会触发onEnter。


5.CCLayer* cclayer = MyLayer::create();

这样情况下,既会触发init()方法,也会触发onEnter()方法。


我是这样理解的init方法只在程序运行时执行一次,但是当在不同Layer之间多次切换,这样onEnter就会被多次执行。虽然还没用到过onEnter,以后要是用到不对会回来再修改的

原文地址:https://www.cnblogs.com/wuyida/p/6300608.html