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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!