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 />
Dieses Verfahren eignet sich gut <strong>für</strong> Inhalt, der sich im Laufe der Zeit nicht ändert. Wenn der Inhalt des Textfeldes<br />
sich jedoch ändern kann, sollten Sie eine andere Strategie in Betracht ziehen. Nehmen wir als Beispiel ein Textfeld, das<br />
kontinuierlich mit einem Prozentsatz aktualisiert wird, um zu zeigen, wie weit <strong>die</strong> Anwendung bereits geladen wurde.<br />
Wenn das Textfeld oder das zugehörige Anzeigeobjekt als Bitmap zwischengespeichert wurde, muss seine Oberfläche<br />
bei jeder Änderung des Inhalts neu generiert werden. Die manuelle Bitmap-Zwischenspeicherung kann hier nicht<br />
verwendet werden, da der Inhalt des Anzeigeobjekts sich fortlaufend ändert. Wegen <strong>die</strong>ser konstanten Änderung<br />
müssten Sie <strong>die</strong> BitmapData.draw()-Methode manuell aufrufen, um <strong>die</strong> zwischengespeicherte Bitmap zu<br />
aktualisieren.<br />
Denken Sie daran, dass seit Flash Player 8 (und AIR 1.0) unabhängig von der Qualitätseinstellung der Bühne <strong>für</strong> ein<br />
Textfeld mit der Einstellung „Anti-Aliasing <strong>für</strong> Lesbarkeit“ ein vollkommenes Anti-Aliasing erfolgt. Dieses Verfahren<br />
belegt etwas weniger Arbeitsspeicher, erfordert aber mehr CPU-Leistung und etwas mehr Zeit zum Rendern als <strong>die</strong><br />
Bitmap-Zwischenspeicherung.<br />
Diese Technik wird im folgenden Code verwendet:<br />
wait_mc.addEventListener( Event.ENTER_FRAME, movePosition );<br />
// Switch to low quality<br />
stage.quality = StageQuality.LOW;<br />
var destX:int = stage.stageWidth >> 1;<br />
var destY:int = stage.stageHeight >> 1;<br />
var preloader:DisplayObject;<br />
function movePosition ( e:Event ):void<br />
{<br />
preloader = e.currentTarget as DisplayObject;<br />
}<br />
preloader.x -= ( preloader.x - destX ) * .1;<br />
preloader.y -= ( preloader.y - destY ) * .1;<br />
if ( Math.abs ( preloader.y - destY ) < 1 )<br />
{<br />
// Switch back to high quality<br />
stage.quality = StageQuality.HIGH;<br />
preloader.removeEventListener ( Event.ENTER_FRAME, movePosition );<br />
}<br />
Die Verwendung <strong>die</strong>ser Option („Anti-Aliasing <strong>für</strong> Lesbarkeit“) <strong>für</strong> beweglichen Text wird nicht empfohlen. Beim<br />
Skalieren von Text wird durch <strong>die</strong>se Option versucht, <strong>die</strong> Ausrichtung des Textes beizubehalten, wodurch ein<br />
Verschiebungseffekt entsteht. Wenn der Inhalt des Anzeigeobjekts sich ständig ändert und skalierter Text erforderlich<br />
ist, können Sie <strong>die</strong> Leistung bei Mobilgeräten jedoch verbessern, indem Sie <strong>die</strong> Qualität auf LOW einstellen. Nach<br />
beendeter Bewegung wechseln Sie wieder zur Qualitätseinstellung HIGH.<br />
Letzte Aktualisierung 9.5.2012<br />
73