AS3 - 来自class的dispatchEvent和主时间轴中的addEventListener

时间:2014-08-06 18:42:05

标签: actionscript-3

我正在尝试在我的类中创建一个加载数据的dispatchEvent,但没有成功。

在我的'loader_complete'方法(类)中:

dispatchEvent(new Event("bam",true));

在我的主要时间表上:

this.addEventListener("bam", getResults);   

function getResults(e:Event){
    trace('hi');
}

我已经将类扩展为'extends EventDispatcher {'。

我错过了什么?

感谢,

1 个答案:

答案 0 :(得分:0)

最有可能导致这种情况:

扩展EventDispatcher的自定义类不在显示列表中 - 例如。它的实例不是主时间轴的子/后代。

当一个事件冒泡时,它会向显示列表中显示父项,直到它到达主阶段。如果调度事件的对象不是具有父项的显示对象,则不会冒泡。

您可以将事件侦听器添加到加载数据的自定义类的实例:

     myCustomClassThatLoadsData.addEventListener("bam",getResults);

或传递对显示对象(主类,主舞台等)的引用以分派事件。

stage.addEventListener("bam",getResults);
myCustomClassThatLoadsData = new CustomClassThatLoadsData(stage);

//in the custom class
stageReference.dispatchEvent(new Event("bam"));