【问题标题】:Proper way to add event listeners to things that don't have it as a native method将事件侦听器添加到没有作为本机方法的事物的正确方法
【发布时间】:2011-04-05 00:54:12
【问题描述】:
我有一个当前没有扩展任何东西的自定义类(它用于在数据库上执行特定类型的查询),但我需要它来向其父类发送事件。 addEventListener 并没有在其中定义。
我注意到很多主要的 Flash 类都扩展了 EventDispatcher,那么如果没有其他选择,我应该这样做吗?是否有任何必须与其他类通信的类扩展 EventDispatcher?
【问题讨论】:
标签:
actionscript-3
events
event-dispatching
【解决方案1】:
你可以做一些事情,你绝对不限于使用事件。事件很好,因为它解耦了代码,并允许许多对象对单个事件采取行动,而不需要分派事件的对象关心谁在听,或者他们在做什么。如果您想分派事件,请扩展 EventDispatcher,或将其作为对象的属性。 (如果您已经在扩展另一个类,有时您可能需要将其定义为属性。)
或者,您的对象可以维护对另一个对象的引用,并在其上显式调用方法。在这种情况下,您不需要扩展 EventDispatcher,但您必须存储对要与之通信的所有其他对象的引用。
两种解决方案都实现了相同的最终结果,这取决于情况和/或偏好。
希望对你有帮助。