将事件侦听器添加到没有将其作为本机方法的事物的正确方法

时间:2011-04-05 00:54:12

标签: actionscript-3 events event-dispatching

我有一个当前没有扩展任何内容的自定义类(它用于在数据库上执行特定类型的查询)但我需要它将事件发送到其父类。但是,没有在其中定义addEventListener。

我注意到很多主要的Flash类都扩展了EventDispatcher,那么如果没有其他选择,我该怎么做?只要有任何必须与其他类进行通信的类扩展EventDispatcher?

1 个答案:

答案 0 :(得分:3)

你可以做几件事,你绝对不仅限于使用事件。事件是很好的,因为它解耦代码,并允许许多对象作用于单个事件,而没有调度事件的对象,因为他们正在倾听正在倾听的事情,或者他们正在做什么。如果要分派事件,请扩展EventDispatcher,或将其中一个作为对象的属性。 (有些时候,如果你已经扩展了另一个类,你可能需要将它定义为一个属性。)

或者,您的对象可以维护对另一个对象的引用,并在其上显式调用方法。在这种情况下,您不需要扩展EventDispatcher,但必须存储对要与之通信的所有其他对象的引用。

两种解决方案都能达到相同的最终结果,这取决于情况和/或偏好。

我希望有所帮助。