Apache flex 在FLEX中重新调度事件

Apache flex 在FLEX中重新调度事件,apache-flex,actionscript-3,events,actionscript,Apache Flex,Actionscript 3,Events,Actionscript,在FLEX应用程序中,我尝试“重新分派”自定义事件。也就是说,component1不dispatchEvnet(事件),component2为事件注册一个处理程序,处理程序的唯一功能也是dispatch(事件)。最后,component3侦听来自component2的事件。我试图做的与“重新抛出”异常的概念类似(出于类似的原因)。不同之处在于,在AS3(Flash 10)中,重新调度似乎不起作用。在IE中,什么都没有发生,在FF3中有一个异常,即在调用component3中的处理程序时,试图将事

在FLEX应用程序中,我尝试“重新分派”自定义事件。也就是说,component1不dispatchEvnet(事件),component2为事件注册一个处理程序,处理程序的唯一功能也是dispatch(事件)。最后,component3侦听来自component2的事件。我试图做的与“重新抛出”异常的概念类似(出于类似的原因)。不同之处在于,在AS3(Flash 10)中,重新调度似乎不起作用。在IE中,什么都没有发生,在FF3中有一个异常,即在调用component3中的处理程序时,试图将事件类型强制转换为my CustomEvent时类型转换失败。调试器中的跟踪代码表明,在调用component3时,事件实际上是一个泛型事件,所有自定义内容都丢失了。应该是这样吗

您遇到的问题是由于未覆盖自定义事件中的事件造成的

重新修补事件时,将克隆和修改它们。如果不重写clone(),则得到clone()的基本实现,该实现返回一个事件。由于无法将事件强制转换为自定义事件类型,因此会引发运行时错误

从文件中:

创建自己的自定义事件类时,必须重写继承的Event.clone()方法,以便复制自定义类的属性。如果未设置在事件子类中添加的所有属性,则当侦听器处理重新修补的事件时,这些属性的值将不正确

更多信息请参见: