イベントを登録しても、同じようなイベントで順番を制御したい場合がある。

私は、マウスによってアイテムがクリックされた場合に、場所と、どのアイテムがクリックされたかが知りたかった。
しかも、場所を特定してから、アイテムを特定してというようにしたい。

このような場合には、
[AS]
target.addEventListener(EventType.eventName,function,false,[プライオリティ]);
[/AS]
のようにして、順番を制御できるのです。
ちなみに、プライオリティは数値で、大きいほど先に実行されます。

試しに、下記のFlashで何かアイテムをクリックしてみてください。
ちなみに、ソースは
[AS]
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”;
}
[/AS]
のようになっていまして、アイテムをクリックすると、ListEvent.ITEM_CLICKとMouseEvent.CLICKが2つ登録してある処理が流れます。
もちろん結果は、event2,event1,event0 の順番で処理がされますが・・・・・

This movie requires Flash Player 9

お仕事のご依頼・相談を承ります
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら

Leave a Reply

お仕事のご依頼・相談
この記事に関連するお仕事のご依頼やご相談をお待ちしております。 詳しくは、こちら
ソフトウェア&ライブラリ




ライブラリ
airxmail(en)
AIR版メール送受信ライブラリ
airxzip
AIR版ZIP圧縮・解凍ライブラリ
執筆書籍
本、雑誌等

WEB記事:CodeZine
執筆記事はこちら
カレンダー
2009年6月
« 5月   7月 »
1234567
891011121314
15161718192021
22232425262728
2930  

カスタム検索
RSS
Add to Google < !–adsense–>
アーカイブ
カテゴリ
にほんブログ村 IT技術ブログへ