Тайминг/последовательность выполнения и dispatchEvent
Здравия!
Проблема вот в чём - конструктор "LableField()" заканчивает своё выполнение быстрее нежели добавляется слушатель "lableField.addEventListener(LableField.graphDataLoaded, lableFieldLoaded)" на окончание конструктора, в связи с чем "dispatchEvent(new Event(LableField.graphDataLoaded))" срабатывает слишком рано и на этом всё заканчивается, то есть функция "lableFieldLoaded(e: Event)" никогда не сработает. Я что-то упускаю из виду, но что? Прошу подсказать, если не ответ, то хотя бы путь где поискать, а пока штудирую справочники :( Код AS3:
Код AS3:
|
Ну, Вы подписываетесь на событие после того, как оно отправлено. А вопрос-то в чем?
Нет никакого вообще смысла отправлять какие-то события из конструктора. Потому что пока работает конструктор, нет его результата — объекта, с которым может что-то случиться) Некому посылать событие и нельзя подписаться на событие от объекта, которого еще нет. Это абракадабра. У меня вот есть вопрос — Вам зачем тут событие вообще, о чем оно? Код итак исполняется синхронно, и само собой, что на строку, следующую после new ..() вы перейдете только после того, как конструктор полностью отработает. То есть можете смело считать, что свое "событие" вы уже получили. |
Да, Вы правы. Странная у меня получилась логика. В данном примере EventDispatcher вообще не нужен. Я как-то совсем упустил что пока new ... () не закончит своё действие, выполнение дальше не пойдёт. Значит проблема у меня в чём-то другом.
Спасибо за ответ. Тут всё, пошёл искать проблемы в других местах. |
Часовой пояс GMT +4, время: 18:48. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.