Я могу фиксировать события смены сцены с помощью методов onEnter и onExit. Но когда события смены сцены требуют времени, например, нарастания или исчезновения, onEnter вызывается раньше (прямо перед затуханием), а onExit вызывается поздно (после завершения затухания).
Я хочу, чтобы еще один onEnter вызывал сразу после завершения затухания, а другой onExit вызывал прямо перед затуханием. Могу я?
2 ответа
Есть второй обратный вызов onEnter только для переходов, он называется onEnterTransitionDidFinish. Но, как уже упоминалось, это сработает, только если CCScheduler используется вместе с CCSceneTransition.
Используйте CCSequence с вашим CCFadeIn, а затем добавьте 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
}
Похожие вопросы
Новые вопросы
cocos2d-iphone
Версия Objective-C для iOS и OS X от Cocos2d. Cocos2d - это фреймворк для создания 2D-игр и графических приложений.