微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在FLEX中重新发送事件

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

解决方法

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

当事件被重新分派时,它们被克隆和修改.如果不覆盖clone(),您将获得clone()的基本实现,该方法返回一个Event.由于无法将事件转换为自定义事件类型,因此会抛出运行时错误.

从文档:

When creating your own custom Event class,you must override the inherited Event.clone() method in order for it to duplicate the properties of your custom class. If you do not set all the properties that you add in your event subclass,those properties will not have the correct values when listeners handle the redispatched event.

原文地址:https://www.jb51.cc/flex/174303.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐