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

Minimieren der CPU-Auslastung<br />

Zwei Ereignisse (Event.ACTIVATE und Event.DEACTIVATE) sind bei der Feinabstimmung der Anwendung hilfreich,<br />

damit so wenig CPU-Durchläufe wie möglich verwendet werden. Mit <strong>die</strong>sen Ereignissen können Sie erkennen, wenn<br />

<strong>die</strong> Laufzeitumgebung den Fokus erhält oder verliert. So kann der Code optimiert werden, um auf Kontextänderungen<br />

zu reagieren. Im folgenden Code werden Listener <strong>für</strong> beide Ereignisse verwendet und <strong>die</strong> Bildrate wird auf null gesetzt,<br />

wenn <strong>die</strong> Anwendung den Fokus verliert. Die Anwendung kann zum Beispiel den Fokus verlieren, wenn der Benutzer<br />

auf einen anderen Tab wechselt oder <strong>die</strong> Anwendung in den Hintergrund verschiebt:<br />

var originalFrameRate:uint = stage.frameRate;<br />

var standbyFrameRate:uint = 0;<br />

stage.addEventListener ( Event.ACTIVATE, onActivate );<br />

stage.addEventListener ( Event.DEACTIVATE, onDeactivate );<br />

function onActivate ( e:Event ):void<br />

{<br />

// restore original frame rate<br />

stage.frameRate = originalFrameRate;<br />

}<br />

function onDeactivate ( e:Event ):void<br />

{<br />

// set frame rate to 0<br />

stage.frameRate = standbyFrameRate;<br />

}<br />

Wenn <strong>die</strong> Anwendung wieder den Fokus erhält, wird <strong>die</strong> Bildrate auf den ursprünglichen Wert zurückgesetzt. Anstatt<br />

<strong>die</strong> Bildrate dynamisch zu ändern, können Sie auch andere Optimierungen in Betracht ziehen, zum Beispiel das<br />

Fixieren von Objekten bzw. das Aufheben der Fixierung.<br />

Das Aktivieren und Deaktivieren von Ereignissen ermöglicht Ihnen, einen ähnlichen Mechanismus wie <strong>die</strong> Funktion<br />

„Anhalten und Fortsetzen“, <strong>die</strong> auf bestimmten mobilen Geräten und Netbooks zu finden ist, zu verwenden.<br />

Verwandte Themen<br />

„Bildrate der Anwendung“ auf Seite 54<br />

„Fixieren und Freigeben von Objekten“ auf Seite 29<br />

Mausinteraktionen<br />

Es empfiehlt sich, Mausinteraktionen nach Möglichkeit zu deaktivieren.<br />

Wenn Sie ein interaktives Objekt, zum Beispiel ein MovieClip- oder Sprite-Objekt, verwenden, führt <strong>die</strong><br />

Laufzeitumgebung nativen Code aus, um Mausinteraktionen zu erkennen und zu verarbeiten. Das Erkennen von<br />

Mausinteraktionen kann <strong>die</strong> CPU stark beanspruchen, wenn zahlreiche interaktive Objekte auf dem Bildschirm<br />

angezeigt werden, besonders wenn <strong>die</strong>se Objekte sich überlappen. Dieser Verarbeitungsaufwand lässt sich auf einfache<br />

Weise vermeiden, indem <strong>die</strong> Mausinteraktionen <strong>für</strong> Objekte deaktiviert werden, <strong>die</strong> keine Mausinteraktion erfordern.<br />

Der folgende Code veranschaulicht <strong>die</strong> Verwendung der Eigenschaften mouseEnabled und mouseChildren:<br />

Letzte Aktualisierung 9.5.2012<br />

33

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!