2011-02-09 6 views
0

私の質問はクリックすべての画面を表示してこの機能を追加する必要はなく、各ボタンの各クリックイベントも変更してください。インターセプトすべてのボタンは

私はこれを行うことができる方法はありますか?

ありがとうございます!

答えて

1

特定のサイト構造によって、これは簡単に行うことができます。あなたのボタンはすべて独自のClassを持っていますか、そうでなければいくつかの特徴を共有していますか?(インスタンス名には共通のハンガリースタイルの_btnマーカーがあります)もしそうなら、あなたは次のようなものを試すことができます:

root.addEventListener(MouseEvent.CLICK, onButtonClickPlaySound); 
private function onButtonClickPlaySound(e:MouseEvent):void{ 
    if(e.target is ExtendedButton){ 
     // play sound here... 
    } 

    // or.... 

    if(e.target.name.indexOf("hungariannotation") >= 0){ 
     // play sound here... 
    } 
} 

これは、表示リスト停止イベントの伝播をハンドラが処理しても機能しません。マウスのクリックは、根まで完全にバブルする必要があります。

+1

ボタンで共有されている 'stage'や他の共通の親を対象とし、リスナーの' useCapture'パラメータを 'true'に設定して' CLICK'を代行できるようにすることでこれを追加します。ボタンの前にイベントが表示されます。その後、上記のように 'event.target'プロパティをフィルタリングすることができます。 –

関連する問題