2012-01-27 7 views
0

タイムライン上に同じムービークリップの2つのコピーがあり、同じものを実行するためには両方が必要なので、同じインスタンス名を与えると思いました。同じインスタンス名を持つ2つのムービークリップ

ステージ上にマウスのクリックを聞き取り、スイッチのステートメントを使用してクリックされたものを確認するイベントリスナーがありますが、スイッチのステートメントはムービークリップのインスタンスを1つだけピックアップし、もう1つはデフォルト。

主なことは、同じインスタンス名でタイムライン上をムービークリップする必要があるということですか?

public function Main() { 
    stage.addEventListener(MouseEvent.CLICK, doStuff); 
} 

public function doStuff(e:MouseEvent):void { 
    switch (e.target) { 
     case myMC1 : 
      //do stuff 
      break; 
     case myMC2 : 
      //do stuff 
      break; 
     case myMC3 : 
      //do stuff 
      break; 
     default : 
      //do stuff 
    } 
} 

答えて

2

は、インスタンスに2人の異なる名前を付けます(:)本当に、2つのオブジェクトに同じ名前を使用することはありません)とスイッチを変更するあなたのムービークリップの子である可能性があり、イベントを送出したオブジェクトを提供します声明この方法:この方法でそれをフォーマットすることで

public function doStuff(e:MouseEvent):void { 
switch (e.target) { 
    case myMC1 : 
    case myMC2 : 
     //do stuff 
     break; 
    case myMC3 : 
     //do stuff 
     break; 
    default : 
     //do stuff 
} 
} 

は、次の2つの異なるケース

のために同じコードを実行することができます
1

代わりにe.currentTargetを使用してください。
e.targetはあなたに

関連する問題