![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 14
|
Удивительное дело, в упор не понимаю происходящего.
В as1/2 при переходе в кадр x (при смене кадров или goto) сначала инициировалось программное окружение (клипы всякие и пр.), только потом срабатывал код. В as3 наблюдаю странную задержку. Новый фильм, в 1м кадре ничего, в 2м - клип, имя box Documant class=mainDoc mainDoc.as: package { import flash.display.MovieClip; import flash.events.*; public class mainDoc extends MovieClip { public function mainDoc () { trace ("main doc") addEventListener(Event.ENTER_FRAME, refresh); } public function refresh (evt:Event) { trace (currentFrame + "\t\t" + box ) if (currentFrame == 2) stop(); } } } Трассировка: main doc 2 null 2 [object MovieClip] 2 [object MovieClip] 2 [object MovieClip] 2 [object MovieClip] |
|
|||||
|
Регистрация: Jul 2008
Адрес: Рига
Сообщений: 176
|
Так и есть, всё правильно, и с этим ничего не поделаешь.
Сначала вы входите во 2й фрэим, в первую очередь выполняется код, а в коде вы сразу пытаетесь связаться с вашим клипом box, но он ещё не был добавлен на сцену! Вообще не советую использовать ваш подход, но решение - Event.ADDED_TO_STAGE. |
|
|||||
|
Регистрация: Jul 2007
Адрес: Дубна, Моск.обл.
Сообщений: 108
|
Объясните, пожалуйста, почему тут работает обращение к клипу box, лежащему на сцене, по имени, ведь класс не динамический и обращение осуществляется не через getChildByName(). По идее компилятор должен выдать ошибку, что свойство box в классе не найдено!..
|
|
|||||
|
Регистрация: Nov 2008
Сообщений: 14
|
Сорри, не понимаю. Как привязать событие ADDED_TO_STAGE к появлению box-а, которого еще нет?
Добавлено через 2 часа 4 минуты Решил для себя эту задачу так: package { import flash.display.MovieClip; import flash.events.*; public class mainDoc extends MovieClip { public function mainDoc () { trace ("main doc") addEventListener(Event.ADDED, newObjAdded); } public function newObjAdded (evt:Event) { if (evt.target.name == "box") { trace ("УРА!"); stop(); evt.target.alpha = 0; } } } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:22. |
|
|
« Предыдущая тема | Следующая тема » |
|
|