0

コードを削減したいので、ここに質問があります。10 個のイベントリスナーがあり、別の状況でそれらを追加または削除する必要がある場合、すべての「addEventListener」を 1 つの関数に配置し、「removeEventListener」を他の関数に配置して、 10 のイベント リスナーの 10 倍の代わりに「add/removeEventListenerFuction」と入力します。今のところありがとう。

4

1 に答える 1

0

イベントタイプがわかっていて、イベントハンドラー関数を配列に格納している場合は、ループ内でadd/removeEventListenerを呼び出すことができるはずです。

var events:Array = [{"type":MouseEvent.CLICK,"handler":func1},
    {"type":MouseEvent.MOUSE_DOWN,"handler":func2},
    {"type":MouseEvent.MOUSE_UP,"handler":func3},
    {"type":MouseEvent.MOUSE_OVER,"handler":func4}];

for(var i:int=0; i<events.length; i++) {

    stage.addEventListener(events[i].type,events[i].handler);
    // to remove
    // stage.removeEventListener(events[i].type,events[i].handler);
}

なぜこれが役立つのかわかりませんが、おそらく、あなたがやろうとしていることを説明し、いくつかのコードを見せようとすると、私はもっと助けることができます。

于 2012-09-16T02:31:39.663 に答える