DispatchEvent应该是函数的最后一个语句吗?

时间:2011-11-25 14:48:18

标签: flash actionscript-3 actionscript

dispatchEvent必须是任何函数的最后一个语句吗?

3 个答案:

答案 0 :(得分:3)

当你调用dispatchEvent时,会在调用dispatchEvent的函数体的其余部分运行之前立即调用该事件的所有处理程序。这是否意味着你需要调用dispatchEvent作为函数体中的最后一件事?只有在dispatchEvent调用之后的代码以某种方式取决于处理程序运行时会有不利变化的内容。

答案 1 :(得分:1)

绝对不是,可以随意在任何地方调用dispatchEvent()。是什么让你问这个问题?

答案 2 :(得分:1)

都能跟得上

dispatchEvent将触发一个事件,并在调用dispatchEvent后立即执行相应的事件处理程序。

但是,与返回不同,在事件处理程序完全执行后,剩余的代码将被执行

简单测试:

//Movie clip (mClip1)

function buzz():void {
    trace("buzz:1");
    dispatchEvent(new Event("justAnotherEvent"));
    trace("buzz:2");
}


//on the stage,

mClip1.addEventListener("justAnotherEvent", ping);

function ping(e:Event):void {
    trace("ping");
}

输出:

  

嗡嗡:1个
  平
  蜂鸣:2

修改 我知道在事件类型中使用文字字符串而不是const是一种不好的做法,但正如我所说,这只是一个简单的快速下降和肮脏的测试。