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方法,因为该方法中做了更多的事情
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。