忍者ブログ
主にFlashのTIPSを紹介するページです。
 カレンダー 
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
 ブログ内検索 
 P R 
 アクセス解析 
[9]  [7]  [6]  [5]  [4]  [3]  [2]  [1
 [PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

通常「addEventListener」を使うときは
addEventListener(イベントタイプ, 関数名);
と記述し、イベントが発生したら「関数名」で指定した関数が呼び出される。

そして処理が終わったら「removeEventListener」で削除する。
removeEventListener(イベントタイプ, 関数名);

これが基本パターンだが「関数名」の箇所に直接処理を書いてしまうこともできる。
↓こんな感じ
addEventListener(イベントタイプ, function(e:Event):void{ trace("hoge"); });

しかしこうすると、この関数は名前を持たないので「removeEventListener」する時に困ってしまう。
これを解決するには「arguments.callee」を使う。
↓こんな感じ
removeEventListener(イベントタイプ, arguments.callee);

※「arguments.callee」のヘルプを見ると「現在実行中の関数への参照です」と記述されている

[プログラム例]:traceを10回実行して、終了する
public function Main()
{
    var cnt:int = 0;
    addEventListener(Event.ENTER_FRAME,
        function(e:Event):void
        {
            trace("count:"+cnt);
            cnt++;
            if(cnt==10)
            {
                removeEventListener(Event.ENTER_FRAME, arguments.callee);
            }
        }
    );
}

本当はちゃんと関数を作った方がいいんだろうけど「フラグをセットするだけ」とか、単純な使い方ならプログラムがスッキリする気がしないでもない。。。
でも、あまり使わないかな?

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
 カウンター 
 フリーエリア 
 プロフィール 
HN:
hirody
性別:
非公開
 リンク 

Template by ららららいふ / Material by 素材くん「無料WEB素材屋」

忍者ブログ [PR]