(1)gotoAndStop()で移動する場合は注意!
例えば、下のような配置の場合

this.gotoAndStop(15);
btn.addEventListener('click', onBtn);
function onBtn(e:MouseEvent):void{
trace(currentFrame);
}
ジャンプ先でもイベントリスナーは有効になっており、15と出力される。
しかし、下のような配置の場合

ジャンプ先では、イベントリスナーは無効になっており、何も出力されない。
この場合は、ジャンプ先で、再度イベントリスナーを追加しなければならない。
//フレーム15のスクリプト
btn.addEventListener('click',onBtn);
リスナー関数は1フレーム目に定義してあるので、呼び出すだけで良い。
同じリスナー関数を重複して追加しても、2度実行されることはない。
(2)リスナー関数に引数を渡す方法
関数内で、イベントを受け取る関数を作成する。
関数内で作成された関数は、ローカル変数をそのまま使える。
//リスナー関数
function myFunc(param){
return funcion (event:MouseEvent):void{
trace(param);
trace(event);
}
}
//引数となる変数の作成
var param:String = "引数";
//イベントリスナーの登録
stage.addEventListener('click', myFunc(param));
出力結果
引数
[MouseEvent type="click" bubbles=true cancelable=false eventPhase=2
localX=82 localY=87 stageX=82 stageY=87 relatedObject=null
ctrlKey=false altKey=false shiftKey=false buttonDown=false delta=0]
変数paramを使わなくてもそのまま値を引数にしてもOK。
【関連する記事】