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的东西。它是一个对象,可用于组和处理程序。组在其上调度事件,处理程序将侦听器附加到该组。