15.10.2012 Views

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

Actionscript 3 Entwicklerhandbuch

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

ACTIONSCRIPT 3.0 ENTWICKLERHANDBUCH<br />

Arbeiten mit Pixel Bender-Shadern<br />

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

shader. Er erstellt außerdem eine Sprite-Instanz mit dem Namen texture. In der renderShader()-Methode<br />

zeichnet der Code das Shader-Ergebnis pro Bild einmal in texture.<br />

onEnterFrame(): Die onEnterFrame()-Methode wird einmal pro Bild aufgerufen und erzeugt den<br />

Animationseffekt. In dieser Methode legt der Code für den Shader-Parameterwert die neue Farbe fest.<br />

Anschließend wird die renderShader()-Methode aufgerufen, um das Ergebnis des Shaders in Form eines<br />

Rechtecks zu zeichnen.<br />

renderShader(): In der renderShader()-Methode ruft der Code die Graphics.beginShaderFill()-Methode<br />

auf, um eine Füllung für den Shader anzugeben. Anschließend wird ein Rechteck gezeichnet, dessen Füllung durch<br />

die Shader-Ausgabe (die generierte Farbe) definiert wird. Weitere Informationen zu dieser Verwendung des<br />

Shaders finden Sie unter „Verwenden eines Shaders als Füllmuster für Zeichnungen“ auf Seite 330.<br />

Im Folgenden wird der ActionScript-Code für dieses Beispiel angezeigt. Verwenden Sie diese Klasse als<br />

Hauptanwendungsklasse für ausschließlich in ActionScript erstellte Projekte in Flash Builder oder als<br />

Dokumentklasse für die FLA-Datei in Flash Professional:<br />

package<br />

{<br />

import flash.display.Shader;<br />

import flash.display.Sprite;<br />

import flash.events.Event;<br />

import flash.net.URLLoader;<br />

import flash.net.URLLoaderDataFormat;<br />

import flash.net.URLRequest;<br />

public class ColorFilterExample extends Sprite<br />

{<br />

private const DELTA_OFFSET:Number = Math.PI * 0.5;<br />

private var loader:URLLoader;<br />

private var shader:Shader;<br />

private var texture:Sprite;<br />

private var delta:Number = 0;<br />

public function ColorFilterExample()<br />

{<br />

init();<br />

}<br />

private function init():void<br />

{<br />

loader = new URLLoader();<br />

loader.dataFormat = URLLoaderDataFormat.BINARY;<br />

loader.addEventListener(Event.COMPLETE, onLoadComplete);<br />

loader.load(new URLRequest("ColorFilter.pbj"));<br />

}<br />

private function onLoadComplete(event:Event):void<br />

{<br />

shader = new Shader(loader.data);<br />

texture = new Sprite();<br />

addChild(texture);<br />

addEventListener(Event.ENTER_FRAME, onEnterFrame);<br />

Letzte Aktualisierung 27.6.2012<br />

327

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

Saved successfully!

Ooh no, something went wrong!