![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2005
Адрес: Bryansk
Сообщений: 73
|
Как создать собственное событие, чтобы к сообщению можно было прицепить дополнительные переменные?
В документации написано, надо переопределить clone(): У меня такое не работает. Пишет, что у класса Event нет конструктора по умолчанию.
__________________
Flash can do it. |
|
|||||
|
Вот пример кастомного события:
public class PingEvent extends Event {
public var URL:String;
public function PingEvent(type:String, URL:String)
{
super(type);
this.URL = URL
}
public override function clone():Event {
return new PingEvent(type, URL);
}
}
Например послали DataEvent, приняли в хендлере и что бы дальше его же переслать нужно его клонировать. Т.к. к созданному событию можно применить метод EventDispatcher.dispatchEvent() только 1 раз. Ошибка в твоём коде происходит потому, что ты не указал явно конструктора PingEvent. Это значит что будет юзаться неявный способ. Неявный конструктор пытается вызвать конструктор супер класса Event. Но, в конструкторе new Event() есть обязательный параметр type:String, который не передаётся неявным конструктором. |
|
|||||
|
Регистрация: Jun 2005
Адрес: Bryansk
Сообщений: 73
|
Большое спасибо за подробное разъяснение!
Правда это не мой код, а код из документации флэш ![]() Я просто не знал, что есть конструкция super(type). Привык использовать super.func(); Конец ![]()
__________________
Flash can do it. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:58. |
|
|
« Предыдущая тема | Следующая тема » |
|
|