15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Verwenden von Arrays<br />

Sie können keine Standardlänge für die Vektorinstanz festlegen. Stattdessen ist die Länge mit der Anzahl der<br />

Elemente in der Initialisierungsliste identisch.<br />

Sie können nicht angeben, ob die Vector-Instanz eine feste Länge hat. Verwenden Sie stattdessen die fixed-<br />

Eigenschaft.<br />

Datenverluste oder -fehler können auftreten, wenn Elemente, die als Werte übergeben wurden, nicht dem<br />

angegebenen Typ entsprechen. Zum Beispiel:<br />

var v:Vector. = new [4.2]; // compiler error when running in strict mode<br />

trace(v[0]); //returns 4 when not running in strict mode<br />

Verwenden des Vector.()-Funktion<br />

Zusätzlich zum Vector.()- und zum Vector-Literalsyntaxkonstruktor können Sie auch die globale<br />

Vector.()-Funktion verwenden, um ein Vector-Objekt zu erstellen. Bei der globalen Vector.()-Funktion<br />

handelt es sich um eine Umwandlungsfunktion. Beim Aufruf der globalen Vector.()-Funktion geben Sie den<br />

Vector-Basistyp an, der von der Methode zurückgegeben wird. Sie übergeben ein einzelnes indiziertes Array (Array-<br />

oder Vector-Instanz) als Argument. Die Methode gibt dann einen Vektor mit dem angegebenen Basistyp zurück, der<br />

die Werte im Argument des Quell-Arrays enthält. Das folgende Codebeispiel zeigt die Syntax für einen Aufruf der<br />

globalen Vector.()-Funktion:<br />

var friends:Vector. = Vector.(["Bob", "Larry", "Sarah"]);<br />

Bei der globalen Vector.()-Funktion wird eine Datenumwandlung auf zwei Ebenen durchgeführt. Erstens wird<br />

bei der Übergabe einer Array-Instanz an die Funktion eine Vector-Instanz zurückgegeben. Zweitens versucht die<br />

Funktion, die Elemente des Quell-Arrays in Werte des Basistyps umzuwandeln, unabhängig davon, ob es sich beim<br />

Quell-Array um eine Array- oder eine Vector-Instanz handelt. Bei der Umwandlung gelten die ActionScript-<br />

Standardregeln für die Datentypumwandlung. Im folgenden Codebeispiel werden die String-Werte im Quell-Array in<br />

Ganzzahlen im Ergebnisvektor umgewandelt. Im Ergebnis wird der Dezimalteil des ersten Wertes („1.5") gekürzt<br />

und der nicht numerische dritte Wert („Waffles") wird in 0 umgewandelt:<br />

var numbers:Vector. = Vector.(["1.5", "17", "Waffles"]);<br />

trace(numbers); // output: 1,17,0<br />

Wenn eines der Quellelemente nicht umgewandelt werden kann, tritt ein Fehler auf.<br />

Wenn beim Aufruf der globalen Vector.()-Funktion ein Element im Quell-Array eine Instanz einer Unterklasse<br />

des angegebenen Basistyps ist, wird das Element dem Ergebnisvektor hinzugefügt. In diesem Fall tritt kein Fehler auf.<br />

Die globale Vector.()-Funktion bietet die einzige Möglichkeit, um einen Vektor mit dem Basistyp T in einen<br />

Vektor umzuwandeln, bei dessen Basistyp es sich um eine übergeordnete Klasse von T handelt.<br />

Einfügen von Array-Elementen<br />

Flash Player 9 und höher, Adobe AIR 1.0 und höher<br />

Am einfachsten können Sie einem indizierten Array ein Element hinzufügen, indem Sie den Array-Zugriffsoperator<br />

([]) verwenden. Um den Wert eines Elements in einem indizierten Array festzulegen, verwenden Sie den Namen des<br />

Array- oder Vector-Objekts und die Indexnummer auf der linken Seite einer Zuweisungsanweisung:<br />

songTitles[5] = "Happy Birthday";<br />

Wenn im Array- oder Vector-Objekt noch kein Element an dieser Indexposition vorhanden ist, wird die<br />

Indexposition erstellt und der Wert wird an dieser Position gespeichert. Ist bereits ein Wert an dieser Indexposition<br />

vorhanden, wird der vorhandene Wert durch den neuen Wert ersetzt.<br />

Letzte Aktualisierung 27.6.2012<br />

31

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

Saved successfully!

Ooh no, something went wrong!