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 />
Renderleistung<br />
Eine gute Optimierung lässt sich durch das Zwischenspeichern von Bitmaps erzielen. Dabei wird ein Vektorobjekt im<br />
Cache zwischengespeichert und intern als Bitmap gerendert. Diese Bitmap wird dann zum Rendern verwendet. Die<br />
Renderleistung kann auf <strong>die</strong>se Weise ganz erheblich verbessert werden, der Nachteil ist jedoch, dass der<br />
Arbeitsspeicher stark beansprucht werden kann. Verwenden Sie das Zwischenspeichern von Bitmaps <strong>für</strong> komplexen<br />
Vektorinhalt, wie beispielsweise komplexe Verläufe oder Text.<br />
Das Aktivieren der Bitmap-Zwischenspeicherung <strong>für</strong> ein animiertes Objekt mit komplexen Vektorgrafiken (wie Text<br />
oder Farbverläufe) verbessert <strong>die</strong> Leistung. Wenn <strong>die</strong> Bitmap-Zwischenspeicherung jedoch <strong>für</strong> ein Anzeigeobjekt<br />
aktiviert ist, dessen Zeitleiste abgespielt wird (wie bei einem Movieclip), tritt das Gegenteil ein. In <strong>die</strong>sem Fall muss <strong>die</strong><br />
Laufzeitumgebung <strong>die</strong> zwischengespeicherte Bitmap bei jedem Bild aktualisieren und auf dem Bildschirm neu<br />
zeichnen, was <strong>die</strong> CPU stark beansprucht. Die Bitmap-Zwischenspeicherung bietet nur dann Vorteile, wenn <strong>die</strong><br />
zwischengespeicherte Bitmap nur einmal erstellt und dann nicht mehr aktualisiert werden muss.<br />
Wenn Sie <strong>die</strong> Bitmap-Zwischenspeicherung <strong>für</strong> ein Sprite-Objekt aktivieren, kann das Objekt verschoben werden,<br />
ohne dass <strong>die</strong> Laufzeitumgebung <strong>die</strong> zwischengespeicherte Bitmap neu generiert. Durch Ändern der Eigenschaften x<br />
und y wird das Objekt nicht neu generiert. Wenn jedoch versucht wird, das Objekt zu drehen, zu skalieren oder seinen<br />
Alphawert zu ändern, generiert <strong>die</strong> Laufzeitumgebung <strong>die</strong> zwischengespeicherte Bitmap neu, was sich negativ auf <strong>die</strong><br />
Leistung auswirkt.<br />
Hinweis: Die DisplayObject.cacheAsBitmapMatrix-Eigenschaft, <strong>die</strong> in AIR und im Packager for iPhone verfügbar<br />
ist, hat <strong>die</strong>se Einschränkung nicht. Indem Sie <strong>die</strong> cacheAsBitmapMatrix-Eigenschaft verwenden, können Sie den<br />
Alphawert eines Objekts drehen, skalieren, neigen und ändern, ohne dass <strong>die</strong> Bitmap neu generiert wird.<br />
Eine zwischengespeicherte Bitmap belegt möglicherweise mehr Arbeitsspeicher als eine reguläre Movieclip-Instanz.<br />
Beispielsweise belegt ein Movieclip, der auf der Bühne eine Größe von 250 x 250 Pixel hat, im Cache ca. 250 KB anstelle<br />
von regulär 1 KB.<br />
Das folgende Beispiel betrifft ein Sprite-Objekt, das ein Bild eines Apfels enthält. Die folgende Klasse wird an das<br />
Symbol des Apfels angefügt:<br />
package org.bytearray.bitmap<br />
{<br />
import flash.display.Sprite;<br />
import flash.events.Event;<br />
public class Apple extends Sprite<br />
{<br />
private var destinationX:Number;<br />
private var destinationY:Number;<br />
public function Apple ()<br />
{<br />
addEventListener(Event.ADDED_TO_STAGE,activation);<br />
addEventListener(Event.REMOVED_FROM_STAGE,deactivation);<br />
}<br />
private function activation(e:Event):void<br />
{<br />
initPos();<br />
addEventListener (Event.ENTER_FRAME,handleMovement);<br />
}<br />
private function deactivation(e:Event):void<br />
Letzte Aktualisierung 9.5.2012<br />
56