AS3: Как проверить и сбросить переменную на основной временной шкале из фрагмента ролика - PullRequest
1 голос
/ 11 февраля 2010

Я конвертирую старый файл AS2 в AS3 (и одновременно пытаюсь изучить AS3). Видеоклип содержит несколько различных анимированных последовательностей, и кнопки в приложении запускают эти разные последовательности. Кнопки работают только после завершения воспроизведения анимации.

В AS2 я достиг этого с помощью переменной _root.animating, которая изначально была установлена ​​на «ложь» и переключалась на «истина», когда анимация воспроизводилась, и переключалась на «ложь» в конце последовательности анимации. Кнопки проверяли эту переменную при нажатии. Вот некоторые из AS2 ...

_root.animating = false;    //MC code to reset var at end of each sequence:
if (animating == false)...  //btn code to check var

Мне не нравится помещать код в mc, но это сработало надежно и привело меня к крайнему сроку. Теперь я хочу переработать файл в AS3, и я думаю, что эта стратегия вернулась, чтобы укусить меня.

Попробовал просто поменять _root на root или stage - ох, если бы это было так просто. Я читал кое-что о глобальных классах, синглетонах и т. Д., Но это кажется излишним для такого рода вещей.

Есть предложения?

1 Ответ

0 голосов
/ 09 марта 2010

Пока вы не почувствуете, что готовы возиться с классами и пакетами, вы можете делать это в настоящее время:

//On Stage:

var animating:boolean = true;


//From inside Movieclip on stage:

trace(MovieClip(_parent).animating);

//'Movieclip' is a keyword - do not substitute with the name of the MC on stage

Вышеприведенное будет работать, если предположить, что мувиклип на сцене, из которой осуществляется доступ к корневой переменной, находится всего на один уровень ниже сцены. Если это из вложенного мувиклипа, то продолжайте добавлять «_parent». до части внутри парантезов, пока вы успешно не ссылаетесь на сцену.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...