google先生にいろいろ聞いてたら感心した記事があったので。
イベントを定義したけど、第二引数を関数名ではなく関数そのものにした場合。
addEventListener(Event.ENTER_FRAME,function(e:Event):void{trace("hogehoge")});
removeEventListener(Event.ENTER_FRAME, 関数名がない);
関数を定義したのはいいけど、関数名がないため削除できない。
しかし、下のようにすれば、
var i:int = 0;
addEventListener(Event.ENTER_FRAME, function(e:Event):void{
trace("hogehoge"+String(i++));
if(i > 100) {
removeEventListener(Event.ENTER_FRAME, arguments.callee);
}
});
arguments.calleeで現在実行している関数を参照できるので削除できるみたい。
記事元:Unknown Quality
>勝手ながらかなりそのまま書かせてもらいました。
クラス arguments
イベントを定義したけど、第二引数を関数名ではなく関数そのものにした場合。
addEventListener(Event.ENTER_FRAME,function(e:Event):void{trace("hogehoge")});
removeEventListener(Event.ENTER_FRAME, 関数名がない);
関数を定義したのはいいけど、関数名がないため削除できない。
しかし、下のようにすれば、
var i:int = 0;
addEventListener(Event.ENTER_FRAME, function(e:Event):void{
trace("hogehoge"+String(i++));
if(i > 100) {
removeEventListener(Event.ENTER_FRAME, arguments.callee);
}
});
arguments.calleeで現在実行している関数を参照できるので削除できるみたい。
記事元:Unknown Quality
>勝手ながらかなりそのまま書かせてもらいました。
クラス arguments