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

Im folgenden Code ist die Definition der TypedArray-Klasse dargestellt. Sie enthält eine Konstante für den Datentyp,<br />

eine Konstruktormethode und die vier Methoden zum Hinzufügen von Elementen zum Array. Der Code für die<br />

einzelnen Methoden ist im folgenden Codebeispiel nicht angegeben, er wird jedoch in den folgenden Abschnitten<br />

getrennt und vollständig erläutert.<br />

public dynamic class TypedArray extends Array<br />

{<br />

private const dataType:Class;<br />

}<br />

public function TypedArray(...args) {}<br />

AS3 override function concat(...args):Array {}<br />

AS3 override function push(...args):uint {}<br />

AS3 override function splice(...args) {}<br />

AS3 override function unshift(...args):uint {}<br />

Bei allen vier überschriebenen Methoden wird der AS3-Namespace anstelle des public-Attributs verwendet, da in<br />

diesem Beispiel davon ausgegangen wird, dass die Compileroption -as3 auf true und die Compileroption -es auf<br />

false gesetzt ist. Dies sind die Standardeinstellungen für Adobe Flash Builder und AdobeFlashProfessional.<br />

Erfahrene Entwickler, die die Verwendung der Prototypvererbung bevorzugen, können zwei kleine Änderungen an<br />

der TypedArray-Klasse vornehmen, sodass diese mit der auf true gesetzten Compileroption -es kompiliert werden<br />

kann. Entfernen Sie zunächst alle Vorkommen des override-Attributs und ersetzen Sie den AS3-Namespace durch das<br />

public-Attribut. Ersetzen Sie dann alle vier Vorkommen von super durch Array.prototype.<br />

TypedArray-Konstruktor<br />

Der Konstruktor der Unterklasse stellt eine interessante Herausforderung dar, da er eine Liste mit Argumenten<br />

beliebiger Länge annehmen muss. Die Herausforderung besteht in der Weise, auf die die Argumente an den<br />

Superkonstruktor übergeben werden, um das Array zu erstellen. Wenn Sie die Liste der Argumente als Array<br />

übergeben, wird sie im Superkonstruktor als einzelnes Argument des Array-Typs erkannt, und das resultierende Array<br />

hat immer die Länge eines Elements. Normalerweise werden übergebene Argumentlisten mithilfe der<br />

Function.apply()-Methode verarbeitet, bei der ein Array mit Argumenten als zweiter Parameter verwendet wird,<br />

das Array jedoch beim Ausführen der Funktion in eine Liste mit Argumenten konvertiert wird. Leider kann die<br />

Function.apply()-Methode bei Konstruktoren nicht verwendet werden.<br />

Die einzige verbleibende Möglichkeit besteht darin, den Code des Array-Konstruktors im TypedArray-Konstruktor<br />

neu zu erstellen. Im folgenden Codebeispiel ist der im Konstruktor der Array-Klasse verwendete Algorithmus<br />

dargestellt, den Sie im Konstruktor der Array-Unterklasse wiederverwenden können:<br />

Letzte Aktualisierung 27.6.2012<br />

46

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

Saved successfully!

Ooh no, something went wrong!