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 />

Renderleistung<br />

Im Mobil-AIR-Profil können Sie der cacheAsBitmapMatrix-Eigenschaft eines Anzeigeobjekts ein Matrix-Objekt<br />

zuweisen. Wenn Sie <strong>die</strong>se Eigenschaft festlegen, können Sie eine beliebige zweidimensionale Transformation auf das<br />

Objekt anwenden, ohne dass <strong>die</strong> zwischengespeicherte Bitmap neu generiert werden muss. Sie können auch <strong>die</strong> alpha-<br />

Eigenschaft ändern, ohne eine Neugenerierung der zwischengespeicherten Bitmap auszulösen. Die cacheAsBitmap-<br />

Eigenschaft muss ebenfalls den Wert true haben, und <strong>für</strong> das Objekt dürfen keine 3D-Eigenschaften festgelegt sein.<br />

Das Festlegen der cacheAsBitmapMatrix-Eigenschaft generiert <strong>die</strong> zwischengespeicherte Bitmap, selbst wenn sich<br />

das Anzeigeobjekt außerhalb des Bildschirms befindet, verdeckt wird oder eine visible-Eigenschaft mit dem Wert<br />

false aufweist. Das Zurücksetzen der cacheAsBitmapMatrix-Eigenschaft durch ein Matrix-Objekt, das eine andere<br />

Transformation enthält, generiert <strong>die</strong> zwischengespeicherte Bitmap ebenfalls neu.<br />

Die Matrix-Transformation, <strong>die</strong> Sie auf <strong>die</strong> cacheAsBitmapMatrix-Eigenschaft anwenden, wird auf das<br />

Anzeigeobjekt angewendet, wenn es in den Bitpmapcache gerendert wird. Somit ist das Bitmaprendering doppelt so<br />

groß wie das Vektorrendering, wenn <strong>die</strong> Transformation eine Zweifachskalierung enthält. Der Renderer wendet <strong>die</strong>se<br />

umgekehrte Transformation auf <strong>die</strong> zwischengespeicherte Bitmap an, sodass <strong>die</strong> endgültige Anzeige genauso aussieht.<br />

Sie können <strong>die</strong> zwischengespeicherte Bitmap auf eine kleinere Größe skalieren, um weniger Arbeitsspeicher zu<br />

benötigen; <strong>die</strong>s geht vermutlich auf Kosten der Renderinggenauigkeit. Unter Umständen möchten Sie <strong>die</strong> Bitmap auch<br />

größer skalieren, um <strong>die</strong> Renderingqualität zu verbessern, was dann mehr Arbeitsspeicher benötigt. Im Allgemeinen<br />

sollten Sie jedoch eine Identitätsmatrix verwenden, also eine Matrix, <strong>die</strong> keine Transformationen anwendet, um<br />

Änderungen am Erscheinungsbild zu vermeiden, wie im folgenden Beispiel dargestellt:<br />

displayObject.cacheAsBitMap = true;<br />

displayObject.cacheAsBitmapMatrix = new Matrix();<br />

Nachdem Sie <strong>die</strong> cacheAsBitmapMatrix-Eigenschaft festgelegt haben, können Sie das Objekt skalieren, neigen,<br />

drehen und versetzen, ohne <strong>die</strong> erneute Generierung der Bitmap auszulösen.<br />

Sie können auch den Alphawert im Bereich 0 bis 1 ändern. Wenn Sie den Alphawert über <strong>die</strong><br />

transform.colorTransform-Eigenschaft mit einer Farbtransformation ändern, muss der im Transformationsobjekt<br />

verwendete Alphawert zwischen 0 und 255 liegen. Wenn Sie <strong>die</strong> Farbtransformation auf andere Weise ändern, wird<br />

<strong>die</strong> zwischengespeicherte Bitmap neu generiert.<br />

Legen Sie immer <strong>die</strong> cacheAsBitmapMatrix-Eigenschaft fest, wenn Sie cacheAsBitmap in Inhalten, der <strong>für</strong><br />

Mobilgeräte erstellt wird, auf true einstellen. Bedenken Sie jedoch <strong>die</strong> folgende mögliche Beeinträchtigung. Nachdem<br />

ein Objekt gedreht, skaliert oder geneigt wurde, können anders als beim normalen Vektorrendering beim endgültigen<br />

Rendering Bitmapskalierungs- oder Aliasing-Artefakte auftreten.<br />

Manuelle Bitmap-Zwischenspeicherung<br />

Verwenden Sie <strong>die</strong> BitmapData-Klasse, um ein benutzerdefiniertes Verhalten <strong>für</strong> <strong>die</strong> Bitmap-Zwischenspeicherung<br />

zu erstellen.<br />

Im folgenden Beispiel wird eine einzelne gerasterte Bitmapversion eines Anzeigeobjekts wiederverwendet, wobei auf<br />

dasselbe BitmapData-Objekt verwiesen wird. Beim Skalieren der einzelnen Anzeigeobjekte wird das ursprüngliche<br />

BitmapData-Objekt weder im Arbeitsspeicher aktualisiert noch neu gezeichnet. Mit <strong>die</strong>ser Technik können Sie CPU-<br />

Ressourcen einsparen und <strong>die</strong> Anwendungsausführung beschleunigen. Beim Skalieren des Anzeigeobjekts wird <strong>die</strong><br />

enthaltene Bitmap gestreckt.<br />

Dies ist <strong>die</strong> aktualisierte BitmapApple-Klasse:<br />

Letzte Aktualisierung 9.5.2012<br />

63

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!