gpt4 book ai didi

apache-flex - FLEX 中的重新调度事件

转载 作者:行者123 更新时间:2023-12-04 00:45:52 25 4
gpt4 key购买 nike

在 FLEX 应用程序中,我试图“重新调度”一个自定义事件。即组件 1 执行 dispatchEvnet(event),组件 2 为事件注册一个处理程序,处理程序的唯一功能再次是 dispatch(event)。最后,component3 监听来自 component2 的事件。我正在尝试做的类似于“重新抛出”异常的概念(出于类似的原因)。不同之处在于重新调度在 AS3 (Flash 10) 中似乎不起作用。在 IE 中,什么也没有发生,而在 FF3 中,有一个异常表示在调用 component3 中的处理程序时尝试将 Event 类型强制转换为我的 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.

关于apache-flex - FLEX 中的重新调度事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/527438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com