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 />

Die Vector-Klasse<br />

In ActionScript 3.0 ist als weiterer Typ eines indizierten Arrays die Vector-Klasse verfügbar. Bei einer Vector-Instanz<br />

handelt es sich um ein Typ-Array. Dies bedeutet, dass alle Elemente einer Vector-Instanz stets denselben Datentyp<br />

aufweisen.<br />

Hinweis: Die Vector-Klasse ist verfügbar ab Flash Player 10 und Adobe AIR 1.5.<br />

Beim Deklarieren einer Vector-Variablen oder beim Instanziieren eines Vector-Objekts geben Sie den Datentyp der<br />

enthaltenen Objekte explizit an. Der angegebene Datentyp wird als Basistyp des Vektors bezeichnet. Zur Laufzeit und<br />

bei der Kompilierung (im strikten Modus) wird der ganze Code überprüft, der den Wert eines Vector-Elements<br />

festlegt oder abruft. Wenn der Datentyp des hinzugefügten oder abgerufenen Objekts nicht mit dem Vector-Basistyp<br />

übereinstimmt, tritt ein Fehler auf.<br />

Neben der Datentypbeschränkung unterscheidet sich die Vector-Klasse von der Array-Klasse noch durch weitere<br />

Beschränkungen:<br />

Ein Vector ist ein dichtes Array. Ein Array-Objekt kann Werte an den Indexpositionen 0 und 7 enthalten, selbst<br />

wenn die Indexpositionen 1 bis 6 unbelegt sind. Dagegen muss ein Vektor an jeder Indexposition einen Wert (oder<br />

null) aufweisen.<br />

Für einen Vektor kann wahlweise eine feste Länge angegeben werden. Dies bedeutet, dass sich die Anzahl der im<br />

Vektor enthaltenen Elemente nicht ändern kann.<br />

Der Zugriff auf die Vector-Elemente ist begrenzt. Es kann kein Wert von einer Indexposition größer als das letzte<br />

Element (length - 1) gelesen werden. Es kann kein Wert festgelegt werden, der eine Indexposition von mehr als<br />

eins hinter der aktuellen letzten Indexposition aufweist (anders ausgedrückt, ein Wert kann nur an einer<br />

vorhandenen Indexposition oder an der Indexposition [length] festgelegt werden).<br />

Aufgrund seiner Beschränkungen bietet ein Vektor drei wichtige Vorteile gegenüber einer Array-Instanz, bei deren<br />

Elementen es sich ausschließlich um Instanzen einer Klasse handelt:<br />

Leistung: Bei einer Vector-Instanz erfolgen der Zugriff auf die Array-Elemente und die Iteration viel schneller als<br />

bei einer Array-Instanz.<br />

Typsicherheit: Im strikten Modus kann der Compiler Datentypfehler erkennen. Solche Fehler treten beispielsweise<br />

auf, wenn einem Vektor ein Wert mit einem falschen Datentyp zugewiesen wird oder wenn beim Lesen eines<br />

Wertes von einem Vektor der falsche Datentyp erwartet wird. Zur Laufzeit werden die Datentypen auch überprüft,<br />

wenn Daten einem Vector-Objekt hinzugefügt oder von einem Vector-Objekt gelesen werden. Beachten Sie jedoch<br />

Folgendes: Wenn Sie einem Vektor mithilfe der push()- oder unshift()-Methode Werte hinzufügen, werden die<br />

Datentypen der Argumente bei der Kompilierung nicht überprüft. Bei Verwendung dieser Methoden werden die<br />

Werte jedoch zur Laufzeit überprüft.<br />

Zuverlässigkeit: Die Laufzeit-Bereichsüberprüfung (oder Festlängenüberprüfung) erhöht die Zuverlässigkeit im<br />

Vergleich mit Arrays erheblich.<br />

Abgesehen von den zusätzlichen Einschränkungen und Vorteilen entspricht die Vector-Klasse im Großen und<br />

Ganzen der Array-Klasse. Die Eigenschaften und Methoden eines Vector-Objekts ähneln den Eigenschaften und<br />

Methoden eines Arrays, in den meisten Fällen sind sie sogar identisch. In den meisten Fällen, in denen Sie ein Array<br />

verwenden würden, dessen Elemente alle denselben Datentyp aufweisen, ist es empfehlenswert, stattdessen eine<br />

Vector-Instanz zu verwenden.<br />

Letzte Aktualisierung 27.6.2012<br />

28

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

Saved successfully!

Ooh no, something went wrong!