![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Добрый день, такой вопрос...
1. есть класс кнопки 2. на сцене лежит несколько экземпляров класса (меню) 3. В конструкторе класса подписываю кнопку на прослушивание пользовательского события(customEvent). Соответствующий обрабатывающий метод определен в классе кнопки. При клике на кнопку (в методе обработки клика) пишу dispatchEvent(customEvent). Все хорошо, но мне нужно, чтобы реагировали все экземпляры класса, а в этом случае событие обрабатывается только кнопкой на которую я кликнул. Варианты с циклом for не рассматриваются. Я делал это в AS2, но тут ничего не получается ![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Код можно?
|
|
|||||
|
вот:
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,787
|
Для начала экземпляр ивента надо создавать в самом методе.
И нужно сделать класс-контейнер, который будет принимать события от кнопок и оповещать остальные. |
|
|||||
|
Цитата:
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
|
|
|||||
|
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Зачем? Класс-контейнер является диспетчером.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|