15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Verwenden von Arrays<br />

Mit drei Methoden der Array- und Vector-Klassen – pop(), shift() und splice() – können Sie Elemente<br />

entfernen. Mit der pop()-Methode wird ein Element am Ende eines Arrays entfernt. Dies bedeutet, dass das Element<br />

mit der höchsten Indexnummer entfernt wird. Mit der shift()-Methode wird ein Element am Anfang eines Arrays<br />

entfernt. Dies bedeutet, dass immer das Element an Indexposition 0 entfernt wird. Mit der splice()-Methode, die<br />

auch zum Einfügen von Elementen verwendet werden kann, wird eine beliebige Anzahl von Elementen entfernt,<br />

angefangen bei der Indexposition, die durch das erste an die Methode gesendete Argument angegeben ist.<br />

Im folgenden Beispiel werden Elemente mithilfe aller drei Methoden aus einer Array-Instanz entfernt. Ein Array<br />

namens oceans (Ozeane) wird erstellt. In diesem Array sollen die Namen großer Gewässer gespeichert werden. Einige<br />

der Elemente im Array sind Seen und keine Meere und sollen daher entfernt werden.<br />

Mithilfe der splice()-Methode werden zunächst die Elemente Aral und Superior entfernt sowie die Elemente<br />

Atlantic und Indian eingefügt. Mit dem ersten an splice() gesendeten Argument, der Ganzzahl 2, wird<br />

angegeben, dass der Vorgang beim dritten Element in der Liste starten soll, an Indexposition 2. Mit dem zweiten<br />

Argument, 2, wird angegeben, dass zwei Elemente entfernt werden sollen. Die restlichen Argumente, Atlantic und<br />

Indian, sind die Werte, die bei Indexposition 2 eingefügt werden sollen.<br />

Mithilfe der pop()-Methode wird dann das letzte Element, Huron, im Array entfernt. Schließlich wird mithilfe der<br />

shift()-Methode das erste Element, Victoria, im Array entfernt.<br />

var oceans:Array = ["Victoria", "Pacific", "Aral", "Superior", "Indian", "Huron"];<br />

oceans.splice(2, 2, "Arctic", "Atlantic"); // replaces Aral and Superior<br />

oceans.pop(); // removes Huron<br />

oceans.shift(); // removes Victoria<br />

trace(oceans);// output: Pacific,Arctic,Atlantic,Indian<br />

Bei den Methoden pop() und shift() werden jeweils die entfernten Elemente zurückgegeben. Bei einer Array-<br />

Instanz hat der Rückgabewert den Object-Datentyp, da Arrays Werte eines beliebigen Datentyps enthalten können.<br />

Bei einer Vector-Instanz entspricht der Datentyp des Rückgabewertes dem Vector-Basistyp. Die splice()-Methode<br />

gibt ein Array oder einen Vektor mit den Werten zurück, die entfernt wurden. Sie können das oceans-Array so<br />

ändern, dass das zurückgegebene Array durch Aufrufen von splice() einer neuen Array-Variablen zugewiesen wird,<br />

wie im folgenden Beispiel gezeigt:<br />

var lakes:Array = oceans.splice(2, 2, "Arctic", "Atlantic");<br />

trace(lakes); // output: Aral,Superior<br />

Möglicherweise stoßen Sie auf Code, bei dem der delete-Operator für ein Array-Objektelement verwendet wird. Mit<br />

dem delete-Operator wird der Wert eines Array-Elements auf undefined gesetzt, das Element wird jedoch nicht aus<br />

dem Array entfernt. Im folgenden Codebeispiel wird der delete-Operator für das dritte Element des oceans-Arrays<br />

verwendet, die Länge des Arrays bleibt jedoch unverändert bei 5:<br />

var oceans:Array = ["Arctic", "Pacific", "Victoria", "Indian", "Atlantic"];<br />

delete oceans[2];<br />

trace(oceans);// output: Arctic,Pacific,,Indian,Atlantic<br />

trace(oceans[2]); // output: undefined<br />

trace(oceans.length); // output: 5<br />

Sie können ein Array oder einen Vektor mithilfe der length-Eigenschaft kürzen. Wenn Sie die length-Eigenschaft<br />

eines indizierten Arrays auf eine geringere Länge als die derzeitige Array-Länge einstellen, wird das Array gekürzt.<br />

Dabei werden die Elemente an den Indexpositionen entfernt, die den neuen Wert für length minus 1 übersteigen.<br />

Wenn das oceans-Array beispielsweise so sortiert ist, dass alle gültigen Einträge sich am Anfang des Arrays befinden,<br />

können Sie die length-Eigenschaft verwenden, um alle Einträge am Ende des Arrays zu entfernen, wie im folgenden<br />

Codebeispiel gezeigt:<br />

var oceans:Array = ["Arctic", "Pacific", "Victoria", "Aral", "Superior"];<br />

oceans.length = 2;<br />

trace(oceans); // output: Arctic,Pacific<br />

Letzte Aktualisierung 27.6.2012<br />

33

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!