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,以后要是用到不对会回来再修改的

上一篇:理解和熟练运用js中的call及apply


下一篇:出现错误解决办法