addEventListenerのMouseEventなどに引数を渡す|AS3

EverNoteにメモっていたActionScript3ネタを今さらながらコチラで整理。

同じような処理のボタンがいくつもあった時、それぞれに

btnTest.addEventListener(MouseEvent.CLICK, testClick);

のように一つ一つ書くのは面倒だったので引数を渡すなりして、中で条件分岐するなりしてコードを簡略化できんかなーという方法。

例えばリンクページがあって同じMovieClipを使うけど、それぞれのリンク先が異なる場合。

btnTest.addEventListener(MouseEvent.CLICK, testClick(btnTest, "http://www.kara-full.com/"));

testClickにMovieClipのインスタンス名とリンク先のURLを渡します。

private function testClick(mc:MovieClip, lnk:String):Function{
 return function (e:MouseEvent):void{
  var url:URLRequest = new URLRequest(lnk);
  navigateToURL(url, "_blank");
 }
}

これで多少はコードが整理できるかと思います。結果条件分岐は必要なくなりましたが(笑)
いくつかメモして放置してるWeb制作関係のネタがあるので、時間ができたときにチョクチョク整理して公開していこうかと思います。

もし 「それはよくないよ!」や「こうした方がいいよ!」って事があったら教えて頂ければ幸いです。

コメントを残す

メールアドレスが公開されることはありません。