当前位置:  开发笔记 > 后端 > 正文

在FLEX中重新调度事件

如何解决《在FLEX中重新调度事件》经验,为你挑选了1个好方法。

在FLEX应用程序中,我正在尝试"重新发送"自定义事件.即component1执行dispatchEvnet(event),component2注册事件的处理程序,处理程序的唯一功能是dispatch(event).最后,component3侦听来自component2的事件.我想要做的是类似于"重新抛出"异常的概念(和类似的原因).不同之处在于重新分派似乎在AS3(Flash 10)中不起作用.在IE中,没有任何反应,在FF3中有一个例外,说在调用component3中的处理程序时尝试将Event类型强制转换为我的CustomEvent时类型转换失败.调试器中的跟踪代码显示,在调用component3时,事件确实是一般事件,我的所有自定义内容都丢失了.应该是这样吗?



1> Richard Szal..:

您遇到的问题是由于未覆盖自定义事件中的clone()事件.

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

从文档:

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

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有