30.07.2012 Aufrufe

Leistungsoptimierung für die ADOBE FLASH-PLATTFORM

Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM

Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

LEISTUNGSOPTIMIERUNG FÜR DIE <strong>FLASH</strong>-<strong>PLATTFORM</strong><br />

Leistung in ActionScript 3.0<br />

Manchmal lassen sich mehrere reguläre Ausdruckmuster verwenden, um dasselbe Textmuster zu finden oder zu<br />

identifizieren. Aus bestimmten Gründen werden bestimmte Muster schneller ausgeführt als andere. Wenn Sie<br />

feststellen, dass ein regulärer Ausdruck dazu führt, dass Ihr Code langsamer als nötig ausgeführt wird, sollten Sie<br />

reguläre Ausdrücke mit Alternativmustern in Betracht ziehen, <strong>die</strong> dasselbe Ergebnis liefern. Testen Sie <strong>die</strong>se<br />

alternativen Ausdruckmuster, um herauszufinden, welches am schnellsten ist.<br />

Verschiedene Optimierungen<br />

Verwenden Sie <strong>für</strong> ein TextField-Objekt <strong>die</strong> appendText()-Methode anstelle des Operators +=.<br />

Beim Arbeiten mit der text-Eigenschaft der TextField-Klasse sollten Sie <strong>die</strong> appendText()-Methode anstelle des<br />

Operators += verwenden. Die appendText()-Methode bietet eine höhere Leistung.<br />

Im folgenden Codebeispiel wird der Operator += verwendet. Die Ausführung der Schleife dauert 1120 ms:<br />

addChild ( myTextField );<br />

myTextField.autoSize = TextFieldAutoSize.LEFT;<br />

var started:Number = getTimer();<br />

for (var i:int = 0; i< 1500; i++ )<br />

{<br />

myTextField.text += "ActionScript 3";<br />

}<br />

trace( getTimer() - started );<br />

// output : 1120<br />

Im folgenden Beispiel wird der Operator += durch <strong>die</strong> appendText()-Methode ersetzt:<br />

var myTextField:TextField = new TextField();<br />

addChild ( myTextField );<br />

myTextField.autoSize = TextFieldAutoSize.LEFT;<br />

var started:Number = getTimer();<br />

for (var i:int = 0; i< 1500; i++ )<br />

{<br />

myTextField.appendText ( "ActionScript 3" );<br />

}<br />

trace( getTimer() - started );<br />

// output : 847<br />

Die Ausführung des Codes dauert nun nur 847 ms.<br />

Aktualisieren Sie Textfelder außerhalb von Schleifen, sofern möglich.<br />

Dieser Code kann mithilfe einer einfachen Technik noch weiter optimiert werden. Das Aktualisieren des Textfeldes in<br />

jeder einzelnen Schleife erfordert sehr viel interne Verarbeitungsleistung. Die Codeausführung kann wesentlich<br />

beschleunigt werden, wenn ein String verkettet und dem Textfeld außerhalb der Schleife zugewiesen wird. Der Code<br />

wird nun in nur 2 ms ausgeführt.<br />

Letzte Aktualisierung 9.5.2012<br />

44

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!