イベントを登録しても、同じようなイベントで順番を制御したい場合がある。
私は、マウスによってアイテムがクリックされた場合に、場所と、どのアイテムがクリックされたかが知りたかった。
しかも、場所を特定してから、アイテムを特定してというようにしたい。
このような場合には、
target.addEventListener(EventType.eventName,function,false,[プライオリティ]);
のようにして、順番を制御できるのです。
ちなみに、プライオリティは数値で、大きいほど先に実行されます。
試しに、下記のFlashで何かアイテムをクリックしてみてください。
ちなみに、ソースは
private function createEnd():void{
tree.addEventListener(ListEvent.ITEM_CLICK,event1,false,1,true);
tree.addEventListener(MouseEvent.CLICK,event2,false,2,true);
tree.addEventListener(MouseEvent.CLICK,event0,false,0,true);
}
private function event0(e:Object):void{
output.text += "event 0 - " + getQualifiedClassName(e) + "\n";
}
private function event1(e:Object):void{
output.text += "event 1 - " + getQualifiedClassName(e) + "\n";
}
private function event2(e:Object):void{
output.text += "event 2 - " + getQualifiedClassName(e) + "\n";
}
のようになっていまして、アイテムをクリックすると、ListEvent.ITEM_CLICKとMouseEvent.CLICKが2つ登録してある処理が流れます。
もちろん結果は、event2,event1,event0 の順番で処理がされますが・・・・・
This movie requires Flash Player 9

