Mit der ShaderFilter-Klasse können Sie einen benutzerdefinierten Filtereffekt anwenden, der als Pixel Bender-Shader definiert ist. Da der Filtereffekt als Pixel Bender-Shader geschrieben wird, kann der Effekt vollständig angepasst werden. Der gefilterte Inhalt wird als Bildeingabe an den Shader übergeben, und das Ergebnis des Shader-Vorgangs wird zum Filterergebnis.
Hinweis:
Der Shader-Filter ist in ActionScript ab Flash Player 10 und Adobe AIR 1.5 verfügbar.
Um einen Shader-Filter auf ein Objekt anzuwenden, erstellen Sie zunächst eine Shader-Instanz, die den verwendeten Pixel Bender-Shader darstellt. Informationen zum Erstellen einer Shader-Instanz und zum Angeben von Eingabebild- und Parameterwerten finden Sie unter
Arbeiten mit Pixel Bender-Shadern
.
Beim Verwenden eines Shaders als Filter sind drei wichtige Dinge zu beachten:
-
Der Shader muss mindestens ein Eingabebild akzeptieren.
-
Das gefilterte Objekt (das Anzeigeobjekt oder BitmapData-Objekt, auf das der Filter angewendet wird) wird als erster Eingabebildwert an den Shader übergeben. Geben Sie daher den Wert für die erste Bildeingabe nicht manuell an.
-
Wenn der Shader mehr als ein Eingabebild definiert, müssen die zusätzlichen Eingaben manuell vorgenommen werden (durch Festlegen der
input
-Eigenschaft von ShaderInput-Instanzen, die zur Shader-Instanz gehören).
Sobald ein Shader-Objekt für den Shader vorliegt, können Sie eine ShaderFilter-Instanz erstellen. Dies ist das eigentliche Filterobjekt, das Sie wie jeden anderen Filter verwenden. Um einen ShaderFilter zu erstellen, der ein Shader-Objekt verwendet, rufen Sie den
ShaderFilter()
-Konstruktor auf und übergeben Sie das Shader-Objekt als Argument wie in diesem Beispiel gezeigt:
var myFilter:ShaderFilter = new ShaderFilter(myShader);
Ein ausführliches Beispiel für die Verwendung eines Shader-Filters finden Sie unter
Verwenden eines Shaders als Filter
.