15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Arbeiten mit Pixel Bender-Shadern<br />

Um einen Shader als Filter zu verwenden, müssen Sie zunächst wie unter „Laden oder Einbetten eines Shaders“ auf<br />

Seite 321 beschrieben ein Shader-Objekt erstellen. Dann erstellen Sie ein mit dem Shader-Objekt verknüpftes<br />

ShaderFilter-Objekt. Das ShaderFilter-Objekt ist der Filter, der auf das gefilterte Objekt angewendet wird. Sie wenden<br />

das Objekt wie andere Filter auch auf Objekte an. Sie übergeben es an die filters-Eigenschaft eines Anzeigeobjekts<br />

oder Sie rufen die applyFilter()-Methode für ein BitmapData-Objekt auf. Mit dem folgenden Code wird zum<br />

Beispiel ein ShaderFilter-Objekt erstellt und der Filter auf ein Anzeigeobjekt mit dem Namen homeButton<br />

angewendet.<br />

var myFilter:ShaderFilter = new ShaderFilter(myShader);<br />

homeButton.filters = [myFilter];<br />

Wenn Sie einen Shader als Filter verwenden, muss der Shader mit mindestens einer Eingabe definiert werden. Wie im<br />

Beispiel dargestellt, setzen Sie den Eingabewert nicht in Ihrem Code. Stattdessen wird das gefilterte Objekt oder<br />

BitmapData-Objekt als Eingabebild gesetzt. Wenn Sie einen Shader verwenden, der mehr als eine Eingabe erwartet,<br />

geben Sie einen Wert für die Eingaben an, die über die erste hinausgehen.<br />

In einigen Fällen verändert ein Filter die Maße eines Originalbilds. Ein typischer Schlagschatteneffekt fügt zum<br />

Beispiel zusätzliche Pixel hinzu, die den Schatten enthalten, der zum Bild hinzugefügt wird. Wenn Sie einen Shader<br />

verwenden, der die Bildmaße ändert, setzen Sie die Eigenschaften leftExtension, rightExtension, topExtension<br />

und bottomExtension, um anzugeben, um wie viel die Bildmaße geändert werden sollen.<br />

Im folgenden Beispiel wird gezeigt, wie ein Shader als Filter verwendet wird. Der Filter in diesem Beispiel kehrt die<br />

roten, grünen und blauen Kanalwerte eines Bildes um. Das Ergebnis ist ein „Negativ“ des Bildes.<br />

Hinweis: Der Shader in diesem Beispiel verwendet den invertRGB.pbk-Pixel Bender-Kernel, der im Pixel Bender Toolkit<br />

enthalten ist. Sie können den Quellcode für den Kernel aus dem Installationsverzeichnis des Pixel Bender Toolkits laden.<br />

Kompilieren Sie den Quellcode und speichern Sie die Bytecodedatei im gleichen Verzeichnis wie den Quellcode.<br />

Der wichtige ActionScript-Code befindet sich in diesen beiden Methoden:<br />

init(): Die init()-Methode wird beim Laden der Anwendung aufgerufen. In dieser Methode lädt der Code die<br />

Shader-Bytecodedatei.<br />

onLoadComplete(): In der onLoadComplete()-Methode erstellt der Code das Shader-Objekt mit dem Namen<br />

shader. Er erstellt und zeichnet dann den Inhalt eines Objekts mit dem Namen target. Das target-Objekt ist ein<br />

mit einer linear verlaufenden Farbe gefülltes Rechteck, links beginnend mit Rot über Grün und abschließend mit<br />

Hellblau. Das ungefilterte Objekt sieht wie folgt aus:<br />

Letzte Aktualisierung 27.6.2012<br />

338

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!