![]() |
диспетчеризация собственного события в конструкторе
Здравствуйте, такой вопрос:
Почему, если написать в конструкторе класса dispatchEvent(new Event('some event')); он событие не передает, а если написать в конструкторе dispEv(); и уже в функции написать саму диспетчеризацию - то все работает? То есть вот так не работает: Код AS3:
Код AS3:
Добавлено через 6 минут А все, врубился... |
Конструктор не должен иметь никакого типа. Хоть в ас3 и простительно написать конструктору :void, многие другие языки этого не простят. Не нужно привыкать это делать.
|
А ну да, в принципе правильно, конструктор же возвращает объект - самого себя.
Спасибо, учту. Тема оказалась не такой бесполезной) |
Собственно, для сложных объектов, которые сообщают наверх о своем состоянии, в конструкторе лучше вообще ничего не писать. Ничего, влияющего на логику работы.
Отдельно конструктор, отдельно - публичный метод init. Получается в случае необходимости естественная конструкция: Код AS3:
|
Собственно, а в чем вообще смысл отправки события из конструктора?
Событие то отправится, но отправится еще раньше, чем кто-либо успеет на него подписаться. Естественно обработчик не отреагирует. Да и зачем? Ведь после создания объекта уже ясно что конструктор отработал, и код, который был в нем выполнился. Смысл события сводится к нулю. Факт срабатывания конструктора уже можно считать подобным событием |
Цитата:
Цитата:
|
| Часовой пояс GMT +4, время: 12:46. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.