Leistungsoptimierung für die ADOBE FLASH-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
Leistungsoptimierung für die ADOBE® FLASH®-PLATTFORM
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