マウスのクリック時などのイベントリスナーで、追加の引数を渡す方法です。
通常イベントリスナーから呼び出すリスナーの関数には引数を渡すことができませんが、次の方法で任意に渡すことができます。
1
2
3
4
5
6
7
8
9
| stage.addEventListener(MouseEvent.CLICK, mouseClick("test"));
function mouseClick(str:String = null):Function {
return function(event:MouseEvent):void {
//クリックされたときの処理
trace(str);
}
} |
stage.addEventListener(MouseEvent.CLICK, mouseClick("test"));
function mouseClick(str:String = null):Function {
return function(event:MouseEvent):void {
//クリックされたときの処理
trace(str);
}
}
イベントリスナーから呼び出す関数の戻り値に、イベントオブジェクトを引数とする関数を返すことで、引数を受け取ることが可能になります。
上記のスクリプトでは無名関数にしているので少し読みづらいですが、書き換えると次のようになります。
1
2
3
4
5
6
7
8
9
| function mouseClick(str:String = null):Function {
return mouseEvent;
function mouseEvent(event:MouseEvent):void {
//クリックされたときの処理
trace(str);
}
} |
function mouseClick(str:String = null):Function {
return mouseEvent;
function mouseEvent(event:MouseEvent):void {
//クリックされたときの処理
trace(str);
}
}
|