![]() |
Рассылка событий
Вложений: 1
Всем привет.
Проблема в том, что не могу реализовать свое событие( в аттаче приложены исходники примера работать все должно так - класс Test в конструкторе подписывается на событие CustomEvent.MYEVENT с обработчиком myEventHandler и выполняет функцию TheOtherClass.doSmth(), откуда и рассылается событие. Хотелось бы, чтобы TheOtherClass не наследовал EventDispatcher, а создавал экземпляр EventDispatcher, с помощью которого и делал рассылку (если это возможно конечно). Подскажите плз....или может ктонибудь исправит исходники и выложит работающий вариант? Вложение 21384 |
Примерно так
Код AS3:
|
r_r_f_r, лучше в конструкторе сделать так:
Код AS3:
|
BlooDHounD, задремал малость:), спасибо. Код подправил.
|
а как рассылать тогда событие? так не работает
Код AS3:
|
у меня работает.
|
Вложений: 1
странно все это....если не сложно, посмотри исходник, я уж прям и не знаю, в чем дело, всю голову поломал....
Вложение 21396 |
Код AS1/AS2:
|
kyrpyr, а зачем испльзовать композицию в TheOtherClass в отношении EventDispatcher. Или вы хотите TheOtherClass унаследоваь от другого класса.
|
Цитата:
Цитата:
с экземпляром класса все ясно, а как поступить, если функция doSmth статическая и вызывается соответственно от имени класса? |
как поступить с чем?
|
см. 1е сообщение
Цитата:
|
Кажется мне что пахнет извращениями, и стоит задуматься о менеджере для компании TheOtherClass'ов.
Если же совсем нужно, то объявляем EventDispatcher статиком, doSmth туда же, и получаем всё что желали, но тут появляется нюанс, если подписать все объекты на один обработчик(myEventHandler), то он вызовется единожды, ибо дипатчер один у них. |
не вижу смысла в вашей конструкции. если у вам надо делать диспатчит, в статике, то зачем вам вообще экземпляры класса? сделайте, как написал r_r_f_r, ваш диспатчер статиком, и всё.
|
Не сильно нужно, а скорее интэрэсно. А про менеджеры это круто, да.
Всем спасибо BlooDHounD, а на что подписывать обработчик тогда? |
kyrpyr, как на что? какой вопрос подразумевается?
1. на какое событие? 2. у кого подписываться? 1. вам виднее. 2. видимо у вашего статического диспатчера. |
| Часовой пояс GMT +4, время: 07:30. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.