У меня есть класс по существу:
public class WindowEvent extends Event
{
public static const WARNEVENT:String = "warnEvent";
public static const TASKREQEVENT:String = "taskRequestEvent";
public static const TASKANNOUNCE:String = "taskAnnounce";
public static const WINDOWCHANGE:String = "windowChange";
public static const ILLEGALPOSITION:String = "illegalPosition";
// insert brevity
}
Первые четыре события работали нормально, но я просто добавил ILLEGALPOSITION
и попробовал это:
// inside Window.as
private function checkDimensions():void {
if(!Window._legalBoundaryEnable)
return;
... var pass:Boolean = Window.legalBoundary.containsRect(
455 this.getBounds(stage));
456 if(!pass) {
457 this.dispatchEvent(new WindowEvent(WindowEvent.ILLEGALPOSITION,
... "Illegal Position etc."));
}
}
Итак, Флекс выбросил мне этот стек, когда я нажал на способ отправки:
TypeError: Error #1034: Type Coercion failed: cannot convert ¬
flex.utils.ui::WindowEvent@511dce41 to flash.events.MouseEvent.
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent() ¬
[C:\autobuild\~\UIComponent.as:9298]
at flex.utils.ui::Window/checkDimensions()[C:\Users\~\Window.as:457]
at flex.utils.ui::Window/stageResized()[C:\Users\~\Window.as:220]
Как видно из трассировки, Window.as:<strong>457</strong>
- последняя строка кода пользователя. Итак, WTF flash.events.EventDispatcher.dispatchEventFunction
пытается сделать с MouseEvent
?