Actionscript 3 AS3:注册事件侦听器的最佳方法

Actionscript 3 AS3:注册事件侦听器的最佳方法,actionscript-3,Actionscript 3,我今天的问题是关于注册事件侦听器的方法 假设我们有一个组元素,其中有一个自定义的处理程序元素。我们希望处理程序元素在组触发自定义事件时执行某些操作。现在,最好的方法是什么 var group:Group = new Group(); var handler:Handler = new Handler(); group.addElement(handler); 现在,注册事件侦听器的最佳方法是什么? 1.继续,从初始化对象的文件开始执行 group.addEventListener("Cus

我今天的问题是关于注册事件侦听器的方法

假设我们有一个
元素,其中有一个自定义的
处理程序
元素。我们希望
处理程序
元素在
触发自定义事件时执行某些操作。现在,最好的方法是什么

var group:Group = new Group();
var handler:Handler = new Handler();
group.addElement(handler);  
现在,注册事件侦听器的最佳方法是什么?
1.继续,从初始化对象的文件开始执行

group.addEventListener("CustomEvent", handler.handlerFunction); 
二,。从处理程序的类中注册事件侦听器:

parent.addEventListener("CustomEvent", handlerFunction);

三,。还有其他方法吗?

您可以让组类实例直接在处理程序类实例上分派自定义事件。处理程序类将有一个内部侦听器,例如在构造函数中注册

public function Handler() {
    addEventListener("CustomEvent", handlerFunction);
}
组类将按以下方式发送事件:

handler.dispatchEvent(new CustomEvent());

我假设它们不是显示对象(对吗?)。你到底想达到什么目的?您真的需要为每个对象注册侦听器吗?当“父对象”上发生事件时,为什么不在所有子对象上调用一个方法呢?它们正在显示对象,但我只是为了举例,没有在这里编写任何代码。对于第二个问题,答案是因为我希望它们尽可能松散耦合。如果有多个
处理程序的实例,该怎么办?我假设小组对处理程序有一个概述。在这种情况下,循环将用于为所有处理程序分派事件。它的缺点是侦听器的优先级丢失。若小组并没有关于处理程序的概述,我会使用我称之为EventBus的东西。它是一个对象,可用于组和处理程序。组在其上调度事件,处理程序将侦听器附加到该组。