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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!