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

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!