Я могу фиксировать события смены сцены с помощью методов onEnter и onExit. Но когда события смены сцены требуют времени, например, нарастания или исчезновения, onEnter вызывается раньше (прямо перед затуханием), а onExit вызывается поздно (после завершения затухания).

Я хочу, чтобы еще один onEnter вызывал сразу после завершения затухания, а другой onExit вызывал прямо перед затуханием. Могу я?

1
willzeng 30 Авг 2011 в 06:42

2 ответа

Лучший ответ

Есть второй обратный вызов onEnter только для переходов, он называется onEnterTransitionDidFinish. Но, как уже упоминалось, это сработает, только если CCScheduler используется вместе с CCSceneTransition.

4
31 Авг 2011 в 09:03

Используйте 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
}
2
Bongeh 30 Авг 2011 в 14:40