|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jan 2008
Сообщений: 669
|
TypeError: Error #1034: Ошибка типа Coercion. MyEvent превращается в Event
Приветствую!
Не могу понять причину превращения MyEvent в Event. Пожалуй, сразу покажу код Главный класс package { import flash.display.Sprite; public class Main extends Sprite { public function Main():void { var had:HandleAndDispatch = new HandleAndDispatch(); had.addEventListener(MyEvent.TEST, handler); } private function handler(e:MyEvent):void { trace('ok'); } } } package { import flash.events.EventDispatcher; public class HandleAndDispatch extends EventDispatcher { public function HandleAndDispatch() { var d:Dispatcher = new Dispatcher(); d.addEventListener(MyEvent.TEST, handler); } private function handler(e:MyEvent):void { trace(e.toString()); // Выводит MyEvent dispatchEvent(e); } } } package { import flash.events.EventDispatcher; import flash.utils.setTimeout; public class Dispatcher extends EventDispatcher { public function Dispatcher() { // Чтобы успеть добавить слушателей setTimeout(dispatch, 1000); } private function dispatch():void { dispatchEvent(new MyEvent(MyEvent.TEST)); } } } package { import flash.events.Event; public class MyEvent extends Event { public static const TEST:String = 'test'; public function MyEvent(type:String) { super(type); } public override function toString():String { return "MyEvent"; } } } Цитата:
Приложил все это |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Клонирование не переопределено в классе события.
Добавлено через 4 минуты Соответственно при клонировании события вызывался суперсклассовый метод, который возвращал действительно "голый" Event. Ну и понятно, что Event не может быть преобразован в MyEvent - у него нет необходимых полей.
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Jan 2008
Сообщений: 669
|
Хмм, получается один объект события может быть передан только один раз, а в последствии он клонируется - не знал об этом.
Wolsh, спасибо! |
Часовой пояс GMT +4, время: 20:28. |
|
« Предыдущая тема | Следующая тема » |
|
|