在默认情况下,给一个对象添加多个相同的事件侦听,这些侦听器将以它们的

注册顺序触发。

        如果要改变事件侦听器触发的默认顺序,可以使用addEventListener()方法的priority参数。priority是addEventListener()方法的第四个参数,为int数据类型。priority值较大的侦听器优先触发。

        示例:用URLLoader对象加载一个文本文件,对其Event.COMPLETE事件添加两个侦听器A和B(先注册A,后注册B)。强制先触发侦听器B。

package

{

import flash.display.Sprite;

import flash.events.Event;

import flash.net.URLLoader;

import flash.net.URLRequest;

public class Main extends Sprite

{

private var txtLoader : URLLoader;

public function Main()

{

super();

txtLoader = new URLLoader();

txtLoader.addEventListener(Event.COMPLETE, completeA, false, 0);

txtLoader.addEventListener(Event.COMPLETE, completeB, false, 1);

txtLoader.load(new URLRequest("a.txt"));

}

private function completeA(e : Event) : void {

trace("complete A start");

}

private function completeB(e : Event) : void {

trace("complete B start");

}

}

}

 

输出结果为:

complete B start
complete A start

尽管侦听器A注册在B之前,但是B的priority属性的值大于A的,所以当URLLoader对象抛出Event.COMPLETE事件后,侦听器B优先调度。