2011-01-16 15 views
1

Ich habe einen MC ‚playerP“ genannt und in der es mit 7 verschiedenen MC. Ich kann nicht scheint Test auf die Kinder zu schlagen MC, es zeigen immer [object position_2]hitTestObject auf Kind eines MC

private function cMove(e:MouseEvent):void 
     { 
      trace(MovieClip(playerP.RR), playerP.PT) 
      if (e.currentTarget.hitTestObject(playerP.PT)) 
      { 
       trace("hit la"); 
      } 
     } 
+0

Was sind playerP.RR und playerP.PT? – Alex

+0

10 PR/PT sind einige MC innerhalb playerP – Hwang

Antwort

1

versuchen, durch die Kinder explizit laufen.

private function cMove(e:MouseEvent):void 
    { 
     for (var ii : uint = 0; ii < playerP.numChildren; ++ii) 
     { 
      if (e.currentTarget.hitTestObject(playerP.getChildAt(ii))) 
      { 
       trace("hit la"); 
      } 
     } 
    } 
+0

Ich versuche nicht wirklich, alle Kinder zu testen, aber jedes Kind MC mit unterschiedlichen Ergebnissen, kann also Schleife in dieser Situation nicht wirklich verwenden? – Hwang

+0

Natürlich können Sie - einfach mehrere if-Anweisungen in sie einfügen. – weltraumpirat

3

ich einen Movieclip zu verweisen bin versucht, die zwei Schichten und 2 Beispiel references. One Erik genannt wird, die anderen Treffer. zur Zeit der größere Erik arbeitet, Wie kann ich "Hit" zum Ziel machen.

for (var ii : uint = 0; ii < target.numChildren; ++ii) { 
    if (e.currentTarget.hitTestObject(target.getChildAt(ii))){ 
     trace("hit la"); 
    } 
} 

Das funktioniert aber auf Erik, die von

public function Catcher(stageRef:Stage, target:Erik) : void 

eingestellt ist, wie Erik ein Klassenobjekt ist.