Leistungsoptimierung für die ADOBE FLASH-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
LEISTUNGSOPTIMIERUNG FÜR DIE <strong>FLASH</strong>-<strong>PLATTFORM</strong><br />
Leistung in ActionScript 3.0<br />
Wenn <strong>die</strong> Vektorgröße nicht vorab angegeben wird, nimmt <strong>die</strong> Größe zu, wenn der Vektor nicht mehr über<br />
ausreichend Platz verfügt. Jedes Mal, wenn <strong>die</strong> Vektorgröße zunimmt, wird ein neuer Arbeitsspeicherblock<br />
zugewiesen. Der aktuelle Inhalt des Vektors wird in den neuen Arbeitsspeicherblock kopiert. Diese zusätzliche<br />
Speicherzuweisung und das Kopieren der Daten wirken sich negativ auf <strong>die</strong> Leistung aus. Der oben gezeigte Code ist<br />
hinsichtlich der Leistung optimiert, da <strong>die</strong> anfängliche Vektorgröße angegeben wird. Der Code ist jedoch nicht <strong>für</strong> <strong>die</strong><br />
Pflegefreundlichkeit optimiert. Um auch <strong>die</strong> Codepflege zu vereinfachen, muss der wieder verwendete Wert in einer<br />
Konstante gespeichert werden:<br />
// Store the reused value to maintain code easily<br />
const MAX_NUM:int = 300000;<br />
var coordinates:Vector. = new Vector.(MAX_NUM, true);<br />
var started:Number = getTimer();<br />
for (var i:int = 0; i< MAX_NUM; i++)<br />
{<br />
coordinates[i] = Math.random()*1024;<br />
}<br />
trace(getTimer() - started);<br />
// output: 47<br />
Verwenden Sie nach Möglichkeit <strong>die</strong> APIs <strong>für</strong> Vector-Objekte, da sie wahrscheinlich schneller ausgeführt werden<br />
können.<br />
Zeichnungs-API<br />
Verwenden Sie <strong>die</strong> Zeichnungs-API <strong>für</strong> eine schnellere Ausführung des Codes.<br />
Flash Player 10 und AIR 1.5 haben eine neue Zeichnungs-API bereitgestellt, mit der eine bessere Leistung bei der<br />
Codeausführung erzielt wurde. Diese neue API führt zwar nicht zu einer höheren Leistung beim Rendern, kann jedoch<br />
<strong>die</strong> Anzahl der erforderlichen Codezeilen deutlich verringern. Weniger Codezeilen können wiederum zu einer<br />
höheren ActionScript-Ausführungsleistung führen.<br />
Die neue Zeichnungs-API enthält <strong>die</strong> folgenden Methoden:<br />
drawPath()<br />
drawGraphicsData()<br />
drawTriangles()<br />
Hinweis: Dieses Thema befasst sich nicht mit der drawTriangles()-Methode, <strong>die</strong> sich auf 3D bezieht. Diese Methode<br />
kann jedoch <strong>die</strong> ActionScript-Leistung verbessern, da sie <strong>die</strong> native Texturzuordnung verarbeitet.<br />
Mit dem folgenden Code wird <strong>die</strong> passende Methode <strong>für</strong> jede gezeichnete Linie explizit aufgerufen:<br />
Letzte Aktualisierung 9.5.2012<br />
38