Flash Builder 4 -> addEventListener

Posted by muchag | ActionScript 3.0,Flash Builder 4 |
初回投稿:2010-07-13 (火) 3:40:30 | 最終更新:2010-07-25 (日) 2:27:50

addEventListener メソッドは、様々なものにイベントを登録するもの。

[as3]public function addEventListener(
type:String,
listener:Function,
useCapture:Boolean = false,
priority:int = 0,
useWeakReference:Boolean = false
):void[/as3]

Adobe® Flex® 4 リファレンスガイド:flash.events addEventListener() メソッド
(addEventListener() メソッドのページはいっぱいあるけど、これ・・・じゃないかな :roll:)
 

利用例
テキスト系のコンポーネントに click イベントを登録

click イベント処理が存在しないテキスト系のコンポーネントに click イベントを登録する。

[as3]myLabel.addEventListener(MouseEvent.CLICK, onClickEvent(myLabel.text));

private function onClickEvent(myString:String):void {
Alert.show(myString);
}[/as3]  

変数はイベント発生時に値を参照する

例えばステージ上に LinkButton を3つ配置して、それぞれにリンク先を設定する場合。
[as3]var myArray:Array = new Array(“http://www.google.com/”, “http://www.yahoo.com/”, “http://www.adobe.com/”);
for (var i:int = 0; i < 3; i++) { var myLinkButton:LinkButton= new LinkButton(); myLinkButton.text = myArray[i]; myLinkButton.addEventListener(MouseEvent.CLICK, function():void{ navigateToURL(new URLRequest(myArray[i]), "_blank"); }); addElement(myLinkButton); }[/as3] これだと、LinkButton がクリックされた時点で myArray[i] を参照するので 意図通りに動作しない。 そこで [as3]var myArray:Array = new Array("http://www.google.com/", "http://www.yahoo.com/", "http://www.adobe.com/"); for (var i:int = 0; i < 3; i++) { var myLinkButton:LinkButton= new LinkButton(); myLinkButton.text = myArray[i]; myLinkButton.data = myArray[i]; // ここがミソ myLinkButton.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void{ navigateToURL(new URLRequest(event.currentTarget.data), "_blank"); }); addElement(myLinkButton); }[/as3] 5行目の各 LinkButton の data プロパティにURLを格納しておき クリック時にそれを参照させることで意図通りに動作する。 Flex User Group:addEventListener メソッドについて
こちらで教えていただいた。

Posted by muchag | ActionScript 3.0,Flash Builder 4 |
初回投稿:2010-07-13 (火) 3:40:30 | 最終更新:2010-07-25 (日) 2:27:50

2 Comments »

  1. コメント by Johnc60 — 2014/7/17 木曜日 @ 22:27:20

    Heya im for the first time the following. I discovered this specific table as a consequence I to discover The item faithfully of use &amp the idea rallied round myself publicized lots. I am hoping to deliver a little back again furthermore foster further like so gkgekfgedfgf

  2. コメント by Johnf276 — 2014/9/15 月曜日 @ 23:00:17

    Only wanna tell that this is very useful , Thanks for taking your time to write this. eckgbeffdddf

RSS feed for comments on this post. TrackBack URI

Leave a comment