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

Mit der concat()-Methode wird das temporäre TypedArray-Array mit dem Namen passArgs erstellt, in dem die<br />

Argumente nach erfolgreicher Typüberprüfung gespeichert werden. Dadurch kann der in der push()-Methode<br />

vorhandene Code für die Typüberprüfung erneut verwendet werden. Mit einer for..in-Schleife wird das args-Array<br />

durchlaufen. Anschließend wird push() für jedes Argument aufgerufen. Da passArgs als TypedArray typisiert ist,<br />

wird die TypedArray-Version von push() ausgeführt. Mit der concat()-Methode wird dann die zugehörige<br />

Superclass-Version aufgerufen, wie im folgenden Codebeispiel dargestellt:<br />

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

{<br />

var passArgs:TypedArray = new TypedArray(dataType);<br />

for (var i:* in args)<br />

{<br />

// type check done in push()<br />

passArgs.push(args[i]);<br />

}<br />

return (super.concat.apply(this, passArgs));<br />

}<br />

Bei der splice()-Methode wird eine beliebig lange Liste mit Argumenten verwendet. Die ersten beiden Argumente<br />

verweisen jedoch immer auf eine Indexposition und die Anzahl der zu löschenden Elemente. Aus diesem Grund wird<br />

mit der überschriebenen splice()-Methode nur eine Typüberprüfung der Elemente des args-Arrays ab<br />

Indexposition 2 durchgeführt. Im Codebeispiel wird in der for-Schleife scheinbar ein rekursiver Aufruf von<br />

splice() ausgeführt. Es handelt sich jedoch um keinen rekursiven Aufruf, da args den Array-Typ und nicht den<br />

TypedArray-Typ aufweist. Dies bedeutet, dass beim Aufrufen von args.splice() die Superclass-Version der<br />

Methode aufgerufen wird. Nach Abschluss der for..in-Schleife enthält das args-Array ab Indexposition 2 nur<br />

Werte mit dem korrekten Datentyp. Mit splice() wird zudem die zugehörige Superclass-Version aufgerufen, wie im<br />

folgenden Codebeispiel dargestellt:<br />

AS3 override function splice(...args):*<br />

{<br />

if (args.length > 2)<br />

{<br />

for (var i:int=2; i< args.length; i++)<br />

{<br />

if (!(args[i] is dataType))<br />

{<br />

args.splice(i,1);<br />

}<br />

}<br />

}<br />

return (super.splice.apply(this, args));<br />

}<br />

Bei der unshift()-Methode, mit der Elemente am Anfang eines Arrays hinzugefügt werden, kann ebenfalls eine<br />

beliebige Liste mit Argumenten übergeben werden. Bei der überschriebenen unshift()-Methode wird ein ähnlicher<br />

Algorithmus wie bei der push()-Methode verwendet, wie im folgenden Codebeispiel dargestellt:<br />

Letzte Aktualisierung 27.6.2012<br />

49

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

Saved successfully!

Ooh no, something went wrong!