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 />
Einführung<br />
Die erste Phase enthält zwei Teile (Ereignisse und das enterFrame-Ereignis), <strong>die</strong> beide potenziell dazu führen, dass<br />
Ihr Code aufgerufen wird. Im ersten Teil <strong>die</strong>ser ersten Phase werden Laufzeitereignisse empfangen und abgesetzt.<br />
Diese Ereignisse können den Abschluss oder den Fortschritt von asynchronen Vorgängen darstellen, zum Beispiel als<br />
Antwort auf das Laden von Daten über ein Netzwerk. Sie beinhalten auch Ereignisse aus Benutzereingaben. Wenn<br />
Ereignisse abgesetzt werden, führt <strong>die</strong> Laufzeitumgebung Ihren Code in Listenern aus, <strong>die</strong> Sie registriert haben. Wenn<br />
kein Ereignis auftritt, wartet <strong>die</strong> Laufzeitumgebung auf den Abschluss <strong>die</strong>ser Ausführungsphase, ohne Aktionen<br />
auszuführen. Die Laufzeit setzt <strong>die</strong> Bildrate auch bei fehlender Aktivität niemals herauf. Wenn während anderer Teile<br />
des Ausführungszyklus Ereignisse auftreten, stellt <strong>die</strong> Laufzeitumgebung <strong>die</strong>se Ereignisse in eine Warteschlange und<br />
setzt sie im nächsten Bild ab.<br />
Der zweite Teil der ersten Phase ist das enterFrame-Ereignis. Dieses Ereignis unterscheidet sich von den anderen, da<br />
es immer einmal pro Bild abgesetzt wird.<br />
Nachdem alle Ereignisse abgesetzt wurden, beginnt <strong>die</strong> Renderingphase der Bildschleife. Zu <strong>die</strong>sem Zeitpunkt<br />
berechnet <strong>die</strong> Laufzeitumgebung den Status aller sichtbaren Elemente auf dem Bildschirm und zeichnet sie auf dem<br />
Bildschirm. Dann wiederholt sich der Prozess, wie ein Läufer seine Stadionrunden auf der Rennbahn zieht.<br />
Hinweis: Bei Ereignissen, <strong>die</strong> eine updateAfterEvent-Eigenschaft enthalten, kann das Rendern sofort erzwungen<br />
werden, ohne dass auf <strong>die</strong> Renderphase gewartet werden muss. Verzichten Sie jedoch auf updateAfterEvent, wenn es<br />
häufig zu Leistungsproblemen führt.<br />
Stellen Sie sich am besten vor, dass <strong>die</strong> beiden Phasen in der Bildschleife gleich lange dauern. In <strong>die</strong>sem Fall werden in<br />
einer Hälfte jeder Bildschleife Ereignisprozeduren und Anwendungscode ausgeführt, während in der anderen Hälfte<br />
das Rendering erfolgt. In der Realität sieht es jedoch oft anders aus. Manchmal benötigt Anwendungscode mehr als<br />
<strong>die</strong> Hälfte der in einem Bild verfügbaren Zeit, dehnt seine Zeitzuweisung aus und verringert somit <strong>die</strong> <strong>für</strong> das<br />
Rendering verfügbare Zeit. In anderen Fällen, besonders bei komplexen grafischen Inhalten wie Filtern und<br />
Mischmodi, benötigt das Rendering mehr als <strong>die</strong> Hälfte der Bildzeit. Da <strong>die</strong> tatsächlich von den Phasen beanspruchte<br />
Zeit flexibel ist, kann man sich <strong>die</strong> Bildschleife als „elastische Rennbahn“ vorstellen.<br />
Wenn <strong>die</strong> gesamten Operationen der Bildschleife (Codeausführung und Rendering) zu lange dauern, kann <strong>die</strong><br />
Laufzeitumgebung <strong>die</strong> Bildrate nicht aufrechterhalten. Das Bild wird erweitert, nimmt mehr Zeit in Anspruch als<br />
vorgesehen, deshalb gibt es eine Verzögerung, bevor das nächste Bild ausgelöst wird. Wenn eine Bildschleife<br />
beispielsweise länger als eine dreißigstel Sekunde dauert, kann <strong>die</strong> Laufzeit den Bildschirm nicht mit 30 fps<br />
aktualisieren. Wenn sich <strong>die</strong> Bildrate verringert, verschlechtert sich das Benutzererlebnis. Im besten Fall wirken<br />
Animationen abgehackt. Im schlimmsten Fall reagiert <strong>die</strong> Anwendung nicht mehr und das Fenster ist leer.<br />
Ausführliche Informationen zum Codeausführungs- und Renderingmodell der Flash Plattform-Laufzeitumgebung<br />
finden Sie in den folgenden Ressourcen:<br />
Flash Player Mental Model – The Elastic Racetrack (Artikel von Ted Patrick)<br />
Asynchronous ActionScript Execution (Artikel von Trevor McCauley)<br />
Optimizing Adobe AIR for code execution, memory & rendering unter<br />
http://www.adobe.com/go/learn_fp_air_perf_tv_de (Video der MAX-Konferenzpräsentation von Sean<br />
Christmann)<br />
Letzte Aktualisierung 9.5.2012<br />
2