2012-03-31 13 views
0

可能であれば、1つのリスナー内の異なるオブジェクトのクリックマウスイベントを作成する方法を知りたいと思います。これを行う方法は何1つのリスナーですべてのクリックマウスイベントを表示する

stage.addEventListener(MouseEvent.CLICK,clicker); 

function clicker (e:MouseEvent):void{ 

if (frame2_btn is clicked){ 
gotoAndPlay(3); 
stage.removeEventListener(MouseEvent.CLICK,clicker); 
} 

if (frame3_btn is clicked){ 
gotoAndPlay(4); 
stage.removeEventListener(MouseEvent.CLICK,clicker); 
} 

} 

:私がやりたいこと

は次のように、すべてのボタンのクリックのためにこのリスナーが普遍的にするのですか?

答えて

2

すべてのイベントが階層(上方向)にバブリングされているような機能を書くことは本当に可能です。ターゲット属性を使用してそのイベントを生成するオブジェクトを取得できます。

ここではあなたの参照のためのデモコードは、ちょうどあなたのすべてのオブジェクトに余分な属性名を作る(スプライト、形状、...それらの多くがあります)(ActionScriptとhaXeのために)

stage.addEventListener(MouseEvent.CLICK,clicker); 

function clicker (e:MouseEvent):void{ 

    if (e.target.name == "frame2_btn") { 
     gotoAndPlay(3); 
     stage.removeEventListener(MouseEvent.CLICK,clicker); 
    } 

    if (e.target.name == "frame3_btn"){ 
     gotoAndPlay(4); 
     stage.removeEventListener(MouseEvent.CLICK,clicker); 
    } 
} 

だせましたそれらの識別は少し容易です。

・ホープ、このヘルプあなた

ベストディーパック

+0

をしようとしたとき、私はコピー何を得るかは、あなたのコードを貼り付けたが、物体を検出するように見えることはできません。私はトレースを試み、何も表示されません。私はここで間違って何をしていますか? – Helixfate

0

あなたが簡単なボタンを持っている場合、それは、何の問題も動作しないはず、それはボタンとして動作するムービークリップを、だ場合、その後、子供たちはあなたに別のを与えるだろう名。

あなたが

stage.addEventListener(MouseEvent.CLICK,clicker); 

function clicker (e:MouseEvent):void{ 
    trace(e.target.name); 
} 
関連する問題