我可以通过onEnter和onExit方法捕获场景变化事件。但是当场景变化事件需要时间,如淡入或淡出时,onEnter被提前调用(在淡入淡出之前),onExit被调用到晚期(在淡入淡出之后)。
我希望在淡入淡出完成后调用另一个onEnter,并在淡入淡出之前调用另一个onExit。我可以吗?
答案 0 :(得分:4)
只有转换的第二个onEnter回调,它被称为onEnterTransitionDidFinish。但是就像已经提到的那样,只有在CCScheduler与CCSceneTransition一起使用时才会触发。
答案 1 :(得分:2)
在CCFadeIn中使用CCSequence,然后在其后添加CCCallFunc。
onEnter和onExit与CCNode对象分配和删除有关,而不是物理视图。
示例代码:
[scene runAction:[CCSequence actions:
[CCFadeIn actionWithDuration:0.45f],
[CCCallFunc actionWithTarget:scene selector:@selector(fakeOnEnter:)], nil]];
在场景对象中,你需要一个方法,
-(void) fakeOnEnter:(id)sender {
// your code to run after the fadein
}