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

Eigenständige Pixel Bender-Shader<br />

Mit der ShaderJob-Klasse können Sie ein Bild oder einen Satz von Daten durch einen Pixel Bender-Shader<br />

ausführen und auf <strong>die</strong> unformatierten Ergebnisdaten zugreifen. Standardmäßig wird der Shader asynchron<br />

ausgeführt, wenn Sie <strong>die</strong> ShaderJob.start()-Methode aufrufen. Die Ausführung erfolgt im Hintergrund; <strong>die</strong><br />

Laufzeitbildschleife wird nicht verwendet. Um <strong>die</strong> synchrone Ausführung des ShaderJob-Objekts zu erzwingen<br />

(was nicht empfohlen wird), übergeben Sie den Wert true an den ersten Parameter der start()-Methode.<br />

Neben <strong>die</strong>sen integrierten Techniken zum asynchronen Ausführen von Code können Sie Ihren eigenen Code auch so<br />

strukturieren, dass er asynchron statt synchron ausgeführt wird. Wenn Sie Code schreiben, der eine potenziell lang<br />

dauernde Aufgabe ausführen soll, können Sie den Code so strukturieren, dass er in Teilen ausgeführt wird. Indem Sie<br />

den Code aufteilen, ermöglichen Sie der Laufzeitumgebung, <strong>die</strong> Rendervorgänge zwischen der Ausführung von<br />

Codeblöcken auszuführen, sodass es seltener zu Renderingproblemen kommt.<br />

Nachstehend sind verschiedene Techniken zum Aufteilen des Codes aufgeführt. Der Grundgedanke hinter <strong>die</strong>sen<br />

Techniken ist es, den Code so zu schreiben, dass jeweils nur ein Teil der Aufgabe ausgeführt wird. Sie verfolgen, was<br />

der Code tut und wo er seine Arbeit unterbricht. Sie verwenden einen Mechanismus wie ein Timer-Objekt, um<br />

wiederholt zu prüfen, ob Aufgaben verbleiben, und um zusätzliche Aufgaben portionsweise auszuführen, bis <strong>die</strong><br />

Arbeit abgeschlossen ist.<br />

Es gibt einige bewährte Muster <strong>für</strong> <strong>die</strong> Strukturierung von Code, um Arbeit auf <strong>die</strong>se Weise aufzuteilen. In den<br />

folgenden Artikeln und Codebibliotheken werden <strong>die</strong>se Muster beschrieben und es wird Code bereitgestellt, der Ihnen<br />

bei der Implementierung der Muster in Ihre Anwendungen hilft:<br />

Asynchronous ActionScript Execution (Artikel von Trevor McCauley mit weiteren Hintergrundinformationen<br />

sowie verschiedenen Implementierungsbeispielen)<br />

Parsing & Rendering Lots of Data in Flash Player (Artikel von Jesse Warden mit Hintergrundinformationen und<br />

Beispielen <strong>für</strong> zwei Ansätze: „builder pattern“ und „green threads“)<br />

Green Threads (Artikel von Drew Cummins, in dem <strong>die</strong> „green threads“-Technik beschrieben wird, mit<br />

Beispielquellcode)<br />

greenthreads (Open-Source-Codebibliothek von Charlie Hubbard zur Implementierung von „green threads“ in<br />

ActionScript. Weitere Informationen finden Sie unter greenthreads Quick Start.)<br />

Threads in ActionScript 3 unter http://www.adobe.com/go/learn_fp_as3_threads_de (Artikel von Alex Harui mit<br />

einer Beispielimplementierung der „Pseudo-Threading“-Technik)<br />

Transparente Fenster<br />

Ziehen Sie bei AIR-Desktopanwendungen <strong>die</strong> Verwendung eines undurchsichtigen rechteckigen Anwendungsfensters<br />

anstelle eines durchsichtigen Fensters in Betracht.<br />

Um ein undurchsichtiges Fenster zu verwenden, legen Sie <strong>für</strong> das Anfangsfenster der AIR-Desktopanwendung in der<br />

Anwendungsdeskriptor-XML-Datei den folgenden Wert fest:<br />

<br />

false<br />

<br />

Für Fenster, <strong>die</strong> vom Anwendungscode erstellt werden, erstellen Sie ein NativeWindowInitOptions-Objekt mit der<br />

transparent-Eigenschaft auf false (Standardeinstellung). Übergeben Sie es an den NativeWindow-Konstruktor,<br />

während Sie das NativeWindow-Objekt erstellen:<br />

Letzte Aktualisierung 9.5.2012<br />

78

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!