2016-05-14 20 views
0

Ich verwende ein Array für Objekte, die einen hitTest auf einem anderen Objekt namens Chest ausführen. Grundsätzlich möchte ich die Array-Objekte in die Brust ziehen, und wenn ein bestimmtes Objekt in der Brust ist, werden bestimmte Funktionen ausgeführt. Um das zu erreichen, möchte ich jedem Objekt eine "berührende" Eigenschaft zuweisen, die standardmäßig falsch ist, und true, wenn das Array-Objekt die Brust berührt/"in", aber ich weiß nicht, wie.Wie können bestimmte Eigenschaften von Objekten in einem Array am besten verwaltet werden?

Ich bin neu in Aktion/Javascript und ich habe gehört, Sie können fast alle Eigenschaften zuweisen, die Sie für jedes Objekt möchten, aber ich bin mir nicht sicher, wie das geht und wie die Eigenschaften verwaltet werden.

Um hinzuzufügen, wie könnte ich verfolgen, wie viele Objekte im Array die Brust berühren?

Alle Erklärungen mit oder ohne Beispielcode würden sehr geschätzt werden!

+0

Zeigen Sie uns, was Sie bisher haben. Es gibt wahrscheinlich eine Million Möglichkeiten, das zu tun, was du beschreibst. Auch JavaScript-Objekte sind vollständig dynamisch, wie Sie beschreiben, aber ActionScript-Objekte sind nicht notwendigerweise, also ist es nicht ganz dasselbe. – Aaron

Antwort

0

Erstellen Sie eine Klasse des Objekts, das Sie testen möchten (zum Beispiel Test) Fügen Sie die checkHit-Eigenschaft oder etwas ähnliches hinzu.

class Test extends MovieClip 
{ 
public var checkHit:Boolean=false; 
} 

In Wurzelklasse,

Push jedes Objekt in einem Array. Jetzt

testArray.push(new Test()); 

,

Sie können mit einer Schleife in Enterframe Ereignis getroffen überprüfen.

for(var i:int=0;i<testArray.length;i++) 
{ 
    if(testArray[i].hitTestObject(chest)) 
{ 
    testArray[i].checkhit=true; 
/// prefrom your code. 
} 

} 

Wenn Sie Nein überprüfen möchten. von Objekten, die auf die Brust treffen. Sie können eine globale Variable verwenden.

for(var i:int=0;i<testArray.length;i++) 
    { 
     if(testArray[i].hitTestObject(chest)) 
    { 
     testArray[i].checkhit=true; 
      hitCount++; 
    /// prefrom your code. 
    } 

    } 
+0

Danke für die Antwort. Ich wünschte, ich hätte es auf deine Weise gemacht, aber ich bin schon so tief in dem Code, dass ich nicht so weit zurückgehen möchte, um es zu ändern. Also habe ich alle Array-Objekte instanziiert in einer Objektklasse, die die Szene repräsentiert, in der die "Tests" und die Truhe erscheinen werden, genannt ChestScene. Ich möchte diese Klasse direkt von meiner Hauptmethode aus aufrufen, also habe ich im Konstruktor nur geschrieben: ChestScene() ;, aber ein Fehler tritt auf, weil ein Argument erwartet wurde. Wie kann ich diese Klasse/dieses Objekt (oder irgendein anderes Objekt) direkt zur Bühne hinzufügen? – freethought