Flash Builder 4 -> addEventListener

Posted by muchag | ActionScript 3.0,Flash Builder 4 | 2010-07-13 (火) 3:40:30

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

ActionScript 3

  1. public function addEventListener(
  2.     type:String,
  3.     listener:Function,
  4.     useCapture:Boolean = false,
  5.     priority:int = 0,
  6.     useWeakReference:Boolean = false
  7. ):void

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

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

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

ActionScript 3

  1. myLabel.addEventListener(MouseEvent.CLICK, onClickEvent(myLabel.text));
  2.  
  3. private function onClickEvent(myString:String):void {
  4.     Alert.show(myString);
  5. }

 

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

例えばステージ上に LinkButton を3つ配置して、それぞれにリンク先を設定する場合。
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 メソッドについて
こちらで教えていただいた。

ActionScript 3.0,Flash Builder 4 | 2010-07-13 (火) 3:40:30 |

2 Comments »

  1. Comment 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. Comment 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