Различия между кодом на временной шкале и использованием класса документа - PullRequest
0 голосов
/ 10 марта 2011

У меня был некоторый код прямо на временной шкале, который обращался к / изменял свойства некоторых фрагментов ролика. Затем я сделал все правильно и переместил код в класс Document. Я поместил код, который раньше был на временной шкале, в конструктор класса документа.

Проблема, с которой я сталкиваюсь, заключается в том, что если я получаю доступ к свойствам фрагмента ролика «слишком рано», он сообщает, что они нулевые. Если я помещаю код в функцию обратного вызова события таймера примерно на полсекунды или помещаю вызов addFrameScript с фреймом около 8 или выше, ссылки на видеоклипы действительны, и все это работает.

Так что по какой-то причине к тому времени, когда код на временной шкале вызывается, все экземпляры фрагмента ролика становятся действительными. Однако, когда внутри конструктора класса документа, это не так. Я попытался использовать обратный вызов события ENTER_FRAME, но фрагменты ролика еще не готовы.

Код должен изменять некоторые свойства фрагмента ролика, основываясь на некоторых параметрах loaderinfo, поэтому мне нужно установить эти свойства, прежде чем что-либо начнет анимироваться.

1 Ответ

3 голосов
/ 10 марта 2011

По какой-то причине к тому времени, когда код на временной шкале будет вызван, все экземпляры фрагмента ролика будут действительны. Однако, когда внутри конструктора класса документа, они не.

Это верно. Конструктор вызывается до того, как основной мувиклип («Временная шкала») будет добавлен на сцену. Временная шкала - это объект, который наследует flash.display.MovieClip, и его необходимо создать, прежде чем он появится где-либо. Кстати, это также происходит, когда вы не назначаете класс документа.

Чтобы убедиться, что вы обращаетесь к свойствам, которые были правильно инициализированы (например, объекты, которые вы поместили на сцене в IDE), переместите связанный код в обработчик событий и прослушайте Event.ADDED_TO_STAGE .

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