![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2013
Адрес: Москва, Сходня
Сообщений: 41
|
Здравствуйте, такой вопрос:
Почему, если написать в конструкторе класса dispatchEvent(new Event('some event')); он событие не передает, а если написать в конструкторе dispEv(); и уже в функции написать саму диспетчеризацию - то все работает? То есть вот так не работает: А так работает: public function MyClass():void { dispEv(); } private function dispEv():void { dispatchEvent(new Event('some event')); } Добавлено через 6 минут А все, врубился... |
|
|||||
|
Регистрация: Jan 2013
Адрес: Москва, Сходня
Сообщений: 41
|
А ну да, в принципе правильно, конструктор же возвращает объект - самого себя.
Спасибо, учту. Тема оказалась не такой бесполезной) |
|
|||||
|
Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
|
Собственно, для сложных объектов, которые сообщают наверх о своем состоянии, в конструкторе лучше вообще ничего не писать. Ничего, влияющего на логику работы.
Отдельно конструктор, отдельно - публичный метод init. Получается в случае необходимости естественная конструкция: |
|
|||||
|
Собственно, а в чем вообще смысл отправки события из конструктора?
Событие то отправится, но отправится еще раньше, чем кто-либо успеет на него подписаться. Естественно обработчик не отреагирует. Да и зачем? Ведь после создания объекта уже ясно что конструктор отработал, и код, который был в нем выполнился. Смысл события сводится к нулю. Факт срабатывания конструктора уже можно считать подобным событием |
|
|||||
|
Цитата:
Цитата:
__________________
...вселенская грусть |
![]() |
![]() |
Часовой пояс GMT +4, время: 12:52. |
|
|
« Предыдущая тема | Следующая тема » |
|
|