Leistungsoptimierung für die ADOBE FLASH-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
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