イベントリスナーの上手い外し方とか。

ActionScript 3.0 でどうやってイベントを外すか? って事をいつも悩んでたんですが、 受動的に外したい場合、こういうやり方も良いんじゃないかと。

public function someCallback(evt:Event):void
{
    if (isDied)
    {
        //  リスナーを外す。
        evt.target.removeEventListener(evt.type,
                                       arguments.callee,
                                       evt.eventPhase < 2);
        //  ココで処理おしまい。
        return;
    }
    //  実際の処理をココに書く。
}

コレだと、リスナーの参照を引き回さなくても大丈夫。 その場にあるもので解決出来るので素敵。 毎回if文を書くのがダルければ、 Closure とかにしちゃえば隠蔽出来ると思う。

うーむ、また1歩 ActionScript とシンクロ出来た気がするよ :-D

助言をしてくれた kjirou さんに感謝!

Posted at: 
2007/12/16 23:01:21
0 Comments
0 TrackBacks
Tags: 
ActionScript
Flash
Trackback: 
http://humming.via-kitchen.com/2007/12/16/remove-eventlistener-on-actionscript3/trackback/

TrackBacks

まだ登録されていません。

Comments

まだ登録されていません。

Add Comment

Add Comment