Как использовать EventDispatcher:
Класс объекта, посылающего события:
Класс объекта, принимающего события:
ВАЖНО: Если объект Sender является MovieClip-ом, то в приведенном выше коде событие не отрабатывается. Для того, чтобы событие сработало, необходимо подписываться на него(вызывать addEventListener) не из конструктора! а из обработчика onLoad().
* * *
ОБНОВЛЕНИЕ: Добавление обработчика с использованием Delegate усложняет его удаление всвязи с тем, что при делегировании возвращается новая функция обработчика (см. комментарии). Для отписывания можно просто запомнить новый обработчик в переменную и потом ее использовать для отписывания:
sender.addEventListener(EVENT_TYPE,this.__event_handler=Delegate.create(this,this.onEventType1));
sender.removeEventListener(EVENT_TYPE,this.__event_handler);
В коде приведен универсальный метод подписывания на прослушивание и отписывания от событий.
Да, чуть не забыл. Для тестирования в таймлайне нужно написать:
this.reciever=new Receiver();
this.reciever.testDispatch();
2 комментария:
this.__sender.addEventListener(Sender.EVENT_TYPE,Delegate.create(this,this.onEventType));
ога... а теперь яви чудо изобретательности и отпишись от этого события :)
Супер, спасибо за наводку.
Обновляю выше приведенный код.
Отправить комментарий