|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
вызов метода во всех экземплярах класса без использования цикла for
Добрый день, такой вопрос...
1. есть класс кнопки 2. на сцене лежит несколько экземпляров класса (меню) 3. В конструкторе класса подписываю кнопку на прослушивание пользовательского события(customEvent). Соответствующий обрабатывающий метод определен в классе кнопки. При клике на кнопку (в методе обработки клика) пишу dispatchEvent(customEvent). Все хорошо, но мне нужно, чтобы реагировали все экземпляры класса, а в этом случае событие обрабатывается только кнопкой на которую я кликнул. Варианты с циклом for не рассматриваются. Я делал это в AS2, но тут ничего не получается |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Код можно?
|
|
|||||
вот:
package Classes{ import flash.events.Event; public class ConstructorEvents extends Event { public static const BTN_STATUS:String = "btnStatus"; public function ConstructorEvents(type:String) { super(type); } } package Classes{ import flash.display.MovieClip; import flash.events.Event; import Classes.ConstructorEvents; public class MenuButton extends MovieClip { public var event:ConstructorEvents = new ConstructorEvents(ConstructorEvents.BTN_STATUS);; public function MenuButton() { addEventListener(ConstructorEvents.BTN_STATUS,onStatus); addEventListener("click",onClick); addEventListener("rollOver",onRollOver); addEventListener("rollOut",onRollOut); } private function onClick(evt:Event):void { dispatchEvent(event); } private function onRollOver(evt:Event):void { } private function onRollOut(evt:Event):void { } public function onStatus(evt:Event):void { trace(evt.target.name); } } } |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Для начала экземпляр ивента надо создавать в самом методе.
И нужно сделать класс-контейнер, который будет принимать события от кнопок и оповещать остальные. |
|
|||||
Цитата:
Цитата:
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Цитата:
|
|
|||||
Цитата:
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Зачем? Класс-контейнер является диспетчером.
|
Часовой пояс GMT +4, время: 09:45. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|