gpt4 book ai didi

actionscript-3 - 场景图/显示列表之外的 AS3 事件冒泡

转载 作者:行者123 更新时间:2023-12-04 07:08:56 29 4
gpt4 key购买 nike

嗨,只是想知道是否可以利用 AS3 中非显示列表类中的事件冒泡。

例如,在一个应用程序模型中,有一个包含许多汽车的 City 类。有哪些方法可以将事件监听器附加到 City 对象并接收从子 Cars 冒泡的事件。澄清 City 和 Car 对象不是显示列表的一部分,它们不是 DisplayObjects。那么冒泡可以以某种方式在显示列表之外实现吗?

据我所知,如果不手动将事件监听器附加到每个 Car 对象并从 City 对象重新调度事件,这是不可能的。其他人有更清洁的解决方案吗?

最佳答案

我不确定我是否完全理解,但是当你创建一个事件时,你可以说它是冒泡的,所以当它调度时它会冒泡。

http://livedocs.adobe.com/flex/3/html/help.html?content=createevents_3.html

http://livedocs.adobe.com/flex/3/langref/flash/events/Event.html#Event()

我相信这将允许您将事件监听器附加到您的城市以获取正确类型的事件,并且可以捕获汽车抛出的事件。我从来没有尝试过这个,所以我不确定。

更新:

啊,我没有意识到这一点。你是对的。从以下链接:

http://livedocs.adobe.com/flex/3/html/help.html?content=events_08.html

Capturing and bubbling happen as the Event object moves from node to node in the display list: parent-to-child for capturing and child-to-parent for bubbling. This process has nothing to do with the inheritance hierarchy. Only DisplayObject objects (visual objects such as containers and controls) can have a capturing phase and a bubbling phase in addition to the targeting phase.



我能看到的唯一方法是让您在每次添加新 child 时向 parent (城市的汽车)注册 child 。在这一点上,您可以在父(城市)中添加一个事件监听器,然后在从子(汽车)处理事件时从父(城市)重新调度事件。我知道这很丑陋,并且您希望确保在删除 child 的任何时候都删除事件监听器,但这是我能看到的唯一真正的解决方案。

关于actionscript-3 - 场景图/显示列表之外的 AS3 事件冒泡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/662274/

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