flash.filtersGradientGlowFilter Mit der GradientGlowFilter-Klasse können Sie einen Glühen-Effekt mit Farbverlauf auf Anzeigeobjekte anwenden.Ermöglicht das Erstellen eines Glühen-Effekts mit Farbverlauf. flash.filters:BitmapFilter Mit der GradientGlowFilter-Klasse können Sie einen Glühen-Effekt mit Farbverlauf auf Anzeigeobjekte anwenden. Ein Glühen-Effekt mit Farbverlauf ist ein Glühen mit realistischem Aussehen in einem von Ihnen festgelegten Farbverlauf. Ein solcher Effekt kann um den inneren oder um den äußeren Rand eines Objekts oder über einem Objekt angewendet werden. Sie können den Filter auf jedes Anzeigeobjekt anwenden (d. h. Objekte, die von der DisplayObject-Klasse erben), z. B. auf MovieClip-, SimpleButton-, TextField-, Video- sowie BitmapData-Objekte.

Die Verwendung von Filtern hängt davon ab, auf welches Objekt sie jeweils angewendet werden:

  • Um Filter auf Anzeigeobjekte anzuwenden, verwenden Sie die filters-Eigenschaft. Durch die Einstellung der filters-Eigenschaft wird das betroffene Objekt selbst nicht verändert, und Sie können den Filter wieder entfernen, indem Sie die filters-Eigenschaft löschen.
  • Um Filter auf BitmapData-Objekte anzuwenden, verwenden Sie die BitmapData.applyFilter()-Methode. Durch den Aufruf von applyFilter() bei einem BitmapData-Objekt wird das gefilterte Bild aus dem BitmapData-Quellobjekt und dem Filterobjekt generiert.

Wenn Sie einen Filter auf ein Anzeigeobjekt anwenden, wird die cacheAsBitmap-Eigenschaft des Anzeigeobjekts auf true gesetzt. Wenn Sie alle Filter entfernen, wird der ursprüngliche Wert von cacheAsBitmap wiederhergestellt.

Dieser Filter unterstützt Bühnenskalierung. Allgemeine Skalierung, Drehung und Neigung werden dagegen nicht unterstützt. Wenn das Objekt selbst skaliert wird (also scaleX und scaleY ungleich 1,0 sind), wird der Filtereffekt nicht skaliert. Er wird nur dann skaliert, wenn die Bühne vergrößert dargestellt wird.

Ein Filter wird nicht angewendet, wenn das Ergebnisbild die maximalen Abmessungen überschreitet. In AIR 1.5 und Flash Player 10 beträgt die maximale Höhe oder Breite 8.191 Pixel; die gesamte Pixelzahl darf 16.777.215 nicht übersteigen. (Wenn ein Bild also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite. Wenn Sie beispielsweise einen großen Movieclip mit aktiviertem Filter vergrößert darstellen, wird der Filter deaktiviert, sobald das Ergebnisbild die maximalen Abmessungen überschreitet.

Im folgenden Beispiel wird ein Quadrat gezeichnet, auf das ein Glühen-Effekt mit Farbverlauf angewendet wird. Der allgemeine Workflow dieses Beispiels lautet wie folgt:
  1. Importieren Sie die erforderlichen Klassen.
  2. Deklarieren Sie die globalen Variablen, mit denen das Quadrat und der Filter definiert werden.
  3. Erstellen Sie die Konstruktorfunktion, die Folgendes bewirkt:
    • Ruft die draw()-Methode auf. Diese Methode verwendet Methoden der Graphics-Klasse, auf die über die Eigenschaft graphics der Sprite-Klasse zugegriffen wird, um ein Quadrat zu zeichnen.
    • Erstellt ein BitmapFilter-Objekt mit dem Namen filter und weist ihm den Wert zu, der sich aus dem Aufruf von getBitmapFilter() ergibt, mit dem der Filter erstellt wird.
    • Erstellt ein neues Array mit dem Namen myFilters und fügt filter hinzu.
    • Weist myFilters der filters-Eigenschaft des GradientGlowFilterExample-Objekts zu. Dadurch werden alle in myFilters vorgefundenen Filter angewendet; in diesem Fall nur filter.
package { import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; import flash.filters.GradientGlowFilter; import flash.display.Sprite; public class GradientGlowFilterExample extends Sprite { private var bgColor:uint = 0xCCCCCC; private var size:uint = 80; private var offset:uint = 50; private var distance:Number = 0; private var angleInDegrees:Number = 45; private var colors:Array = [0xFFFFFF, 0xFF0000, 0xFFFF00, 0x00CCFF]; private var alphas:Array = [0, 1, 1, 1]; private var ratios:Array = [0, 63, 126, 255]; private var blurX:Number = 50; private var blurY:Number = 50; private var strength:Number = 2.5; private var quality:Number = BitmapFilterQuality.HIGH; private var type:String = BitmapFilterType.OUTER; private var knockout:Boolean = false; public function GradientGlowFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { return new GradientGlowFilter(distance, angleInDegrees, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
GradientGlowFilter.ratiosflash.display.BitmapData.applyFilter()flash.display.DisplayObject.cacheAsBitmapflash.display.DisplayObject.filtersGlowFilter-KlasseGradientGlowFilter Initialisiert den Filter mit den angegebenen Parametern.distanceNumber4.0Der Offset des Glühen-Effekts. angleNumber45Der Winkel in Grad. Die zulässigen Werte liegen zwischen 0 und 360. colorsArraynullEin Array von Farben, das einen Farbverlauf definiert. Rot beispielsweise hat den Wert 0xFF0000, Blau den Wert 0x0000FF usw. alphasArraynullEin Array mit Alphatransparenzwerten für die entsprechenden Farben im colors-Array. Die zulässigen Werte der einzelnen Elemente des Arrays liegen zwischen 0 und 1. Mit dem Wert 0,25 wird die Alphatransparenz beispielsweise auf 25 % gesetzt. ratiosArraynullEin Array von Farbverteilungsverhältnissen. Die zulässigen Werte liegen zwischen 0 und 255. Dieser Wert gibt den Breitenanteil an, in dem die Farbe mit 100 % gesampelt wird. blurXNumber4.0Der Grad der horizontalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255. Eine Weichzeichnung mit einer Stärke von 1 oder weniger bedeutet, dass das Originalbild kopiert wird. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. blurYNumber4.0Der Grad der vertikalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255. Eine Weichzeichnung mit einer Stärke von 1 oder weniger bedeutet, dass das Originalbild kopiert wird. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. strengthNumber1Die Stärke des Abdrucks oder Auftragens. Je höher der Wert, desto mehr Farbe wird aufgetragen und desto stärker ist der Kontrast zwischen dem Glühen und dem Hintergrund. Die zulässigen Werte liegen zwischen 0 und 255. Je höher der Wert, desto mehr Farbe wird aufgedruckt. Der Wert 0 bedeutet, dass der Filter nicht angewendet wird. qualityint1Gibt an, wie oft der Filter angewendet werden soll. Verwenden Sie die BitmapFilterQuality-Konstanten:
  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

Weitere Informationen finden Sie in der Beschreibung der quality-Eigenschaft.

typeStringinnerDie Platzierung des Filtereffekts. Mögliche Werte sind die flash.filters.BitmapFilterType-Konstanten:
  • BitmapFilterType.OUTER – Glühen-Effekt am äußeren Rand des Objekts
  • BitmapFilterType.INNER – Glühen-Effekt am inneren Rand des Objekts (die Standardeinstellung)
  • BitmapFilterType.FULL – Glühen-Effekt über dem Objekt
knockoutBooleanfalseGibt an, ob für das Objekt ein Aussparungseffekt definiert wurde. Mit einem Aussparungseffekt wird eine transparente Füllung des Objekts definiert, die Hintergrundfarbe des Dokuments wird sichtbar. Der Wert true gibt an, dass ein Aussparungseffekt angewendet werden soll. Der Standardwert lautet false (kein Aussparungseffekt).
Initialisiert den Filter mit den angegebenen Parametern.
clone Gibt eine Kopie dieses Filterobjekts zurück.Eine neue GradientGlowFilter-Instanz mit allen Eigenschaften der ursprünglichen GradientGlowFilter-Instanz. flash.filters:BitmapFilter Gibt eine Kopie dieses Filterobjekts zurück. alphas Ein Array mit Alphatransparenzwerten für die entsprechenden Farben im colors-Array.ArrayDas Array ist leer, wenn gesetzt. TypeErrorTypeErrorEin Array von Alphatransparenzwerten. Ein Array mit Alphatransparenzwerten für die entsprechenden Farben im colors-Array. Die zulässigen Werte der einzelnen Elemente des Arrays liegen zwischen 0 und 1. Mit dem Wert 0,25 wird beispielsweise ein Alphatransparenzwert von 25 % festgelegt.

Die alphas-Eigenschaft kann nicht unmittelbar durch Änderung ihrer Werte geändert werden. Sie müssen vielmehr einen Verweis auf alphas erstellen, dort die Änderungen vornehmen und dann alphas auf den Verweis setzen.

Die Eigenschaften colors, alphas und ratios stehen miteinander in Zusammenhang. Das erste Element im colors-Array entspricht dem jeweils ersten Element im alphas- und im ratios-Array usw.

GradientGlowFilter.colorsGradientGlowFilter.ratios
angle Der Winkel in Grad.Number Der Winkel in Grad. Die zulässigen Werte liegen zwischen 0 und 360. Der Standardwert ist 45.

Dieser Wert stellt den Winkel einer imaginären, das Objekt beleuchtenden Lichtquelle dar und bestimmt die Position des Effekts relativ zu diesem Objekt. Falls distance auf 0 (null) gesetzt wird, ist der Versatz des Effekts gleich null und die angle-Eigenschaft hat keine Auswirkungen.

blurX Der Grad der horizontalen Weichzeichnung.Number Der Grad der horizontalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255. Eine Weichzeichnung mit einer Stärke von 1 oder weniger bedeutet, dass das Originalbild kopiert wird. Der Standardwert ist 4. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. blurY Der Grad der vertikalen Weichzeichnung.Number Der Grad der vertikalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255. Eine Weichzeichnung mit einer Stärke von 1 oder weniger bedeutet, dass das Originalbild kopiert wird. Der Standardwert ist 4. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. colors Ein Array von Farben, das einen Farbverlauf definiert.ArrayDas Array ist leer, wenn gesetzt. TypeErrorTypeError Ein Array von Farben, das einen Farbverlauf definiert. Rot beispielsweise hat den Wert 0xFF0000, Blau den Wert 0x0000FF usw.

Die colors-Eigenschaft kann nicht direkt durch Bearbeiten der entsprechenden Werte geändert werden. Sie müssen vielmehr einen Verweis auf colors erstellen, dort die Änderungen vornehmen und dann colors auf den Verweis setzen.

Die Eigenschaften colors, alphas und ratios stehen miteinander in Zusammenhang. Das erste Element im colors-Array entspricht dem jeweils ersten Element im alphas- und im ratios-Array usw.

GradientGlowFilter.alphasGradientGlowFilter.ratios
distance Der Offset des Glühen-Effekts.Number Der Offset des Glühen-Effekts. Der Standardwert ist 4. knockout Gibt an, ob für das Objekt ein Aussparungseffekt definiert wurde.Boolean Gibt an, ob für das Objekt ein Aussparungseffekt definiert wurde. Mit einem Aussparungseffekt wird eine transparente Füllung des Objekts definiert, die Hintergrundfarbe des Dokuments wird sichtbar. Der Wert true gibt an, dass ein Aussparungseffekt angewendet werden soll. Der Standardwert lautet false (kein Aussparungseffekt). quality Gibt an, wie oft der Filter angewendet werden soll.int Gibt an, wie oft der Filter angewendet werden soll. Der Standardwert lautet BitmapFilterQuality.LOW, was einer einmaligen Anwendung des Filters entspricht. Mit dem Wert BitmapFilterQuality.MEDIUM wird der Filter zweimal angewendet und mit dem Wert BitmapFilterQuality.HIGH dreimal. Filter mit niedrigen Werten werden schneller dargestellt.

Bei den meisten Anwendungen genügt die Angabe der niedrigen, mittleren oder hohen Qualität für quality. Sie können zwar Werte bis 15 angeben, um unterschiedliche Effekte zu erzielen, höhere Werte führen jedoch auch zu einer langsameren Darstellung. Anstatt also den Wert von quality zu erhöhen, können Sie einen ähnlichen Effekt mit gleichzeitig schnellerer Darstellung erzielen, indem Sie einfach die Eigenschaftswerte von blurX und blurY erhöhen.

flash.filters.BitmapFilterQuality
ratios Ein Array mit Farbverteilungsverhältnissen für die entsprechenden Farben im colors-Array.ArrayDas Array ist leer, wenn gesetzt. TypeErrorTypeError Ein Array mit Farbverteilungsverhältnissen für die entsprechenden Farben im colors-Array. Die zulässigen Werte liegen zwischen 0 und 255.

Die ratios-Eigenschaft kann nicht unmittelbar durch Bearbeitung ihrer Werte geändert werden. Sie müssen vielmehr einen Verweis auf ratios erstellen, dort die Änderungen vornehmen und dann ratios auf den Verweis setzen.

Die Eigenschaften colors, alphas und ratios stehen miteinander in Zusammenhang. Das erste Element im colors-Array entspricht dem jeweils ersten Element im alphas- und im ratios-Array usw.

Stellen Sie sich einen Glühen-Filter mit Farbverlauf als ein Glühen vor, das vom Zentrum eines Objekts ausgeht (sofern der Wert distance auf 0 (null) gesetzt wurde) und als in einander verlaufende Farbbänder angezeigt wird. Die erste Farbe des colors-Arrays ist die äußerste Farbe des Glühens. Die letzte Farbe stellt die innerste Farbe des Glühens dar.

Jeder Wert des ratios-Arrays legt die Position der entsprechenden Farbe im Bereich des Farbverlaufs fest. Dabei gibt 0 den äußersten Punkt und 255 den innersten Punkt des Farbverlaufs an. Die Verhältniswerte können zwischen 0 und 255 Pixel liegen und steigen dem Wert nach an, z. B. [0, 64, 128, 200, 255]. Werte zwischen 0 und 128 werden am äußeren Rand des Glühens angezeigt, während Werte zwischen 129 und 255 am inneren Rand des Glühens dargestellt werden. In Abhängigkeit von den Verhältniswerten der Farben und dem type-Wert des Filters werden die Filterfarben unter Umständen von dem Objekt überdeckt, auf das der Filter angewendet wird.

Im folgenden Code und Bild wird ein Filter auf einen Movieclip mit einem schwarzen Kreis angewendet. Der Typ ist dabei auf "full" gesetzt. Aus Gründen der Nachvollziehbarkeit hat der erste Farbwert im colors-Array (Rosa) den alpha-Wert 1, sodass sich das Objekt gegen den weißen Hintergrund abhebt. (In einer realen Anwendung ist es eher unwahrscheinlich, dass die erste Farbe auf diese Weise angezeigt werden soll.) Die letzte Farbe des Arrays, Gelb, überdeckt den schwarzen Kreis, auf den der Filter angewendet wird:

	var colors:Array = [0xFFCCFF, 0x0000FF, 0x9900FF, 0xFF0000, 0xFFFF00];
	var alphas:Array = [1, 1, 1, 1, 1];
	var ratios:Array = [0, 32, 64, 128, 225];
	var myGGF:GradientGlowFilter = new GradientGlowFilter(0, 0, colors, alphas, ratios, 50, 50, 1, 2, "full", false);
	

Wenn Sie bei einem type-Wert von "outer" oder "full" einen nahtlosen Übergang vom Hintergrund des Dokuments erzielen möchten, setzen Sie die erste Farbe des Arrays auf die Farbe des Dokumenthintergrunds oder setzen Sie den Alphtransparenzwert der ersten Farbe auf 0. In beiden Fällen wird der Filter an die Hintergrundfarbe angeglichen.

Wenn Sie an diesem Code zwei kleine Änderungen vornehmen, wird der Glühen-Effekt völlig anders dargestellt, auch wenn die ratios- und colors-Arrays unverändert belassen werden. Setzen Sie den Alphawert der ersten Farbe des Arrays auf 0 (null), damit der Filter an den weißen Dokumenthintergrund angeglichen wird, und die Eigenschaft type auf "outer" oder "inner". Sehen Sie sich die Ergebnisse an. Diese sind in den folgenden Abbildungen dargestellt.

Beachten Sie hierbei, dass die Farben im Farbverlauf anhand der Werte der Eigenschaften blurX, blurY, strength und quality sowie der ratios-Werte verteilt werden.

GradientGlowFilter.colorsGradientGlowFilter.alphasflash.display.Graphics.beginGradientFill()
strength Die Stärke des Abdrucks oder Auftragens.Number Die Stärke des Abdrucks oder Auftragens. Je höher der Wert, desto mehr Farbe wird aufgetragen und desto stärker ist der Kontrast zwischen dem Glühen und dem Hintergrund. Die zulässigen Werte liegen zwischen 0 und 255. Der Wert 0 bedeutet, dass der Filter nicht angewendet wird. Der Standardwert ist 1. type Die Platzierung des Filtereffekts.StringDer String ist leer, wenn gesetzt. TypeErrorTypeError Die Platzierung des Filtereffekts. Mögliche Werte sind die „flash.filters.BitmapFilterType“-Konstanten:
  • BitmapFilterType.OUTER – Glühen-Effekt am äußeren Rand des Objekts
  • BitmapFilterType.INNER – Glühen-Effekt am inneren Rand des Objekts (die Standardeinstellung)
  • BitmapFilterType.FULL – Glühen-Effekt über dem Objekt
ColorMatrixFilter Mithilfe der ColorMatrixFilter-Klasse können Sie eine 4 x 5-Matrixtransformation auf den RGBA-Farb- und Alphawert jedes Pixels eines Eingabebilds anwenden, um ein neues RGBA-Farb- und Alphamuster zu erhalten.Wendet eine farbliche Matrixtransformation auf die Farb- und Alphatransparenzwerte jedes Pixels an. flash.filters:BitmapFilter Mithilfe der ColorMatrixFilter-Klasse können Sie eine 4 x 5-Matrixtransformation auf den RGBA-Farb- und Alphawert jedes Pixels eines Eingabebilds anwenden, um ein neues RGBA-Farb- und Alphamuster zu erhalten. Dies ermöglicht Änderungen der Sättigung, des Farbtons und der Luminanz sowie viele andere Effekte. Sie können den Filter auf jedes Anzeigeobjekt anwenden (d. h. Objekte, die von der DisplayObject-Klasse erben), z. B. auf MovieClip-, SimpleButton-, TextField-, Video- sowie BitmapData-Objekte.

Hinweis: Bei RGBA-Werten steht das höchstwertige Byte für den Wert des Rotkanals, gefolgt von Grün, Blau und schließlich Alpha.

Verwenden Sie zum Erstellen eines neuen Farbmatrixfilters die Syntax new ColorMatrixFilter(). Die Verwendung von Filtern hängt davon ab, auf welches Objekt sie jeweils angewendet werden:

  • Um Filter auf Movieclips, Textfelder, Schaltflächen und Videosequenzen anzuwenden, verwenden Sie die Eigenschaft filters (von DisplayObject übernommen). Durch die Einstellung der filters-Eigenschaft wird das betroffene Objekt selbst nicht verändert, und Sie können den Filter wieder entfernen, indem Sie die filters-Eigenschaft löschen.
  • Um Filter auf BitmapData-Objekte anzuwenden, verwenden Sie die BitmapData.applyFilter()-Methode. Durch den Aufruf von applyFilter() bei einem BitmapData-Objekt wird das gefilterte Bild aus dem BitmapData-Quellobjekt und dem Filterobjekt generiert.

Wenn Sie einen Filter auf ein Anzeigeobjekt anwenden, wird die cacheAsBitmap-Eigenschaft des Anzeigeobjekts auf true gesetzt. Wenn Sie alle Filter entfernen, wird der ursprüngliche Wert von cacheAsBitmap wiederhergestellt.

Ein Filter wird nicht angewendet, wenn das Ergebnisbild die maximalen Abmessungen überschreitet. In AIR 1.5 und Flash Player 10 beträgt die maximale Höhe oder Breite 8.191 Pixel; die gesamte Pixelzahl darf 16.777.215 nicht übersteigen. (Wenn ein Bild also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite. Wenn Sie beispielsweise einen großen Movieclip mit aktiviertem Filter vergrößert darstellen, wird der Filter deaktiviert, sobald das Ergebnisbild die maximalen Abmessungen erreicht.

Im folgenden Beispiel werden verschiedene Farbmatrixfilter auf eine Bilddatei angewendet. Der Filterkonstruktor ruft buildChild() viermal auf, um vier Instanzen des Bildes zu laden und anzuzeigen. Beim ersten Aufrufen von buildChild() wird null als Argument angenommen und kein Filter auf die erste Instanz angewendet. Bei jedem folgenden Aufruf von buildChild() wird eine Funktion als Argument angenommen, mit der ein anderer Farbmatrixfilter auf jede folgende Instanz des Bildes angewendet wird.

Mit der Funktion buildChild() wird ein neues Loader-Objekt namens loader erstellt. Bei jedem Aufruf von buildChild() wird ein Ereignis-Listener an das Loader-Objekt angehängt. Auf diese Weise werden complete-Ereignisse erfasst, die von der an buildChild() übergebenen Funktion bearbeitet werden.

Die Funktionen applyRed(), applyGreen() und applyBlue() verwenden verschiedene Werte für das matrix-Array, um unterschiedliche Effekte zu erzielen.

Hinweis: Die besten Ergebnisse erzielen Sie mit einem Bild mit ca. 80 Pixel Breite. Der Name und Speicherort der Bilddatei sollten dem an die url-Eigenschaft übergebenen Wert entsprechen. Beispielsweise verweist der an url übergebene Wert auf eine Datei mit dem Namen „Image.jpg“, die sich im selben Ordner wie die SWF-Datei befindet.

package { import flash.display.DisplayObject; import flash.display.Loader; import flash.display.Sprite; import flash.events.Event; import flash.events.IOErrorEvent; import flash.filters.ColorMatrixFilter; import flash.net.URLRequest; public class ColorMatrixFilterExample extends Sprite { private var size:uint = 140; private var url:String = "Image.jpg"; public function ColorMatrixFilterExample() { buildChild(null); buildChild(applyRed); buildChild(applyGreen); buildChild(applyBlue); } private function buildChild(loadHandler:Function):void { var loader:Loader = new Loader(); loader.x = numChildren * size; loader.y = size; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); if (loadHandler != null) { loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler); } var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function applyRed(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); var matrix:Array = new Array(); matrix = matrix.concat([1, 0, 0, 0, 0]); // red matrix = matrix.concat([0, 0, 0, 0, 0]); // green matrix = matrix.concat([0, 0, 0, 0, 0]); // blue matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha applyFilter(child, matrix); } private function applyGreen(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); var matrix:Array = new Array(); matrix = matrix.concat([0, 0, 0, 0, 0]); // red matrix = matrix.concat([0, 1, 0, 0, 0]); // green matrix = matrix.concat([0, 0, 0, 0, 0]); // blue matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha applyFilter(child, matrix); } private function applyBlue(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); var matrix:Array = new Array(); matrix = matrix.concat([0, 0, 0, 0, 0]); // red matrix = matrix.concat([0, 0, 0, 0, 0]); // green matrix = matrix.concat([0, 0, 1, 0, 0]); // blue matrix = matrix.concat([0, 0, 0, 1, 0]); // alpha applyFilter(child, matrix); } private function applyFilter(child:DisplayObject, matrix:Array):void { var filter:ColorMatrixFilter = new ColorMatrixFilter(matrix); var filters:Array = new Array(); filters.push(filter); child.filters = filters; } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
flash.display.BitmapData.getPixel()flash.display.BitmapData.applyFilter()flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapColorMatrixFilter Initialisiert eine neue ColorMatrixFilter-Instanz mit den angegebenen Parametern.matrixArraynullEin Array von 20 Elementen, die als 4 x 5-Matrix angeordnet sind. Initialisiert eine neue ColorMatrixFilter-Instanz. Initialisiert eine neue ColorMatrixFilter-Instanz mit den angegebenen Parametern. clone Gibt eine Kopie dieses Filterobjekts zurück.Eine neue ColorMatrixFilter-Instanz mit allen Eigenschaften der ursprünglichen Instanz. flash.filters:BitmapFilter Gibt eine Kopie dieses Filterobjekts zurück. matrix Ein Array von 20 Elementen für eine Farbtransformierung des Typs 4 x 5.ArrayDas Array ist leer, wenn gesetzt. TypeErrorTypeError Ein Array von 20 Elementen für eine Farbtransformierung des Typs 4 x 5. Die matrix-Eigenschaft kann nicht unmittelbar durch Änderung ihres Werts geändert werden (z. B. durch myFilter.matrix[2] = 1;). Sie müssen stattdessen einen Verweis auf das Array erstellen, dort die Änderungen vornehmen und dann den Wert zurücksetzen.

Der Farbmatrixfilter trennt die Rot-, Grün-, Blau- und Alpha-Komponenten aller Quellpixel in srcR, srcG, srcB und srcA. Zum Berechnen der Ergebnisse für jeden der vier Kanäle wird der Wert jedes Bildpixels mit den Werten in der Transformationsmatrix multipliziert. Zu jedem Ergebnis kann optional ein Versatzwert zwischen -255 und 255 addiert werden (das fünfte Element jeder Matrixzeile). Der Filter fasst alle Farbkomponenten wieder zu einem Pixel zusammen und gibt das Ergebnis aus. In der folgenden Formel entsprechen a[0] bis a[19] den Einträgen 0 bis 19 in einem Array von 20 Elementen, das der matrix-Eigenschaft übergeben wird:

	redResult   = (a[0]  ~~ srcR) + (a[1]  ~~ srcG) + (a[2]  ~~ srcB) + (a[3]  ~~ srcA) + a[4]
	greenResult = (a[5]  ~~ srcR) + (a[6]  ~~ srcG) + (a[7]  ~~ srcB) + (a[8]  ~~ srcA) + a[9]
	blueResult  = (a[10] ~~ srcR) + (a[11] ~~ srcG) + (a[12] ~~ srcB) + (a[13] ~~ srcA) + a[14]
	alphaResult = (a[15] ~~ srcR) + (a[16] ~~ srcG) + (a[17] ~~ srcB) + (a[18] ~~ srcA) + a[19]
	

Für alle Farbwerte im Array bedeutet der Wert 1, dass dieser Kanal zu 100 % in die Ausgabe übernommen wird und der Wert des Farbkanals somit erhalten bleibt.

Die Berechnungen werden für die nicht multiplizierten Farbwerte durchgeführt. Wenn die Eingabegrafiken vormultiplizierte Farbwerte enthalten, werden diese Werte bei dieser Operation automatisch in nicht multiplizierte Farbwerte umgewandelt.

Es stehen zwei optimierte Modi zur Verfügung:

Nur Alpha. Wenn Sie dem Filter eine Matrix übergeben, mit der wie in der folgenden Darstellung nur die Alpha-Komponente geändert wird, optimiert der Filter die Leistung:

	    1 0 0 0 0
	    0 1 0 0 0
	    0 0 1 0 0
	    0 0 0 N 0  (where N is between 0.0 and 1.0)
	

Schnellere Version: Steht nur bei SSE-/AltiVec-beschleunigten Prozessoren zur Verfügung (wie Intel® Pentium® 3 und höher bzw. Apple® G4 und höher). Der Beschleuniger wird verwendet, wenn die Multiplikatoren zwischen -15,99 und 15,99 und die Additionsterme a[4], a[9], a[14] und a[19] zwischen -8.000 und 8.000 liegen.

DisplacementMapFilter Die DisplacementMapFilter-Klasse führt mithilfe der Pixelwerte bestimmter als „Verschiebungsmatrix“ bezeichneter BitmapData-Objekte Verschiebungen von Objekten aus.Verschiebt das Originalobjekt, auf das der Filter angewendet wird. flash.filters:BitmapFilter Die DisplacementMapFilter-Klasse führt mithilfe der Pixelwerte bestimmter als Verschiebungsmatrix bezeichneter BitmapData-Objekte Verschiebungen von Objekten aus. Sie können den Filter auf jedes Anzeigeobjekt anwenden (d. h. Objekte, die von der DisplayObject-Klasse erben), z. B. auf MovieClip-, SimpleButton-, TextField- und Video- sowie BitmapData-Objekte.

Die Verwendung von Filtern hängt davon ab, auf welches Objekt sie jeweils angewendet werden:

  • Um Filter auf ein Anzeigeobjekt anzuwenden, verwenden Sie die filters-Eigenschaft des Anzeigeobjekts. Durch die Einstellung der filters-Eigenschaft wird das betroffene Objekt selbst nicht verändert, und Sie können den Filter wieder entfernen, indem Sie die filters-Eigenschaft löschen.
  • Um Filter auf BitmapData-Objekte anzuwenden, verwenden Sie die BitmapData.applyFilter()-Methode. Beim Aufrufen von applyFilter() für ein BitmapData-Objekt wird das gefilterte Bild aus dem BitmapData-Quellobjekt und dem Filterobjekt kombiniert.

Wenn Sie einen Filter auf ein Anzeigeobjekt anwenden, wird der Wert der cacheAsBitmap-Eigenschaft des Anzeigeobjekts auf true gesetzt. Wenn Sie alle Filter entfernen, wird der ursprüngliche Wert von cacheAsBitmap wiederhergestellt.

Der Filter verwendet die folgende Formel:

dstPixel[x, y] = srcPixel[x + ((componentX(x, y) - 128) ~~ scaleX) / 256, y + ((componentY(x, y) - 128) ~~scaleY) / 256)

Dabei erhält componentX(x, y) den componentX-Farbwert der mapBitmap-Eigenschaft an der Position (x - mapPoint.x ,y - mapPoint.y).

Das mit dem Filter verwendete Matrixbild wird so skaliert, dass es an die Größe der Bühne angepasst wird. Wenn das Objekt selbst skaliert wird, wird das Matrixbild nicht skaliert.

Dieser Filter unterstützt Bühnenskalierung. Allgemeine Skalierung, Drehung und Neigung werden jedoch nicht unterstützt. Wenn das Objekt selbst skaliert wird (also die Eigenschaften scaleX und scaleY ungleich 1,0 sind), wird der Filtereffekt nicht skaliert. Er wird nur dann skaliert, wenn die Bühne vergrößert dargestellt wird.

Im folgenden Beispiel wird ein Quadrat mit einer radialen Farbverlaufsfüllung gezeichnet, ein Textfeld erstellt, ein BitmapData-Objekt erstellt und auf das DisplacementMapFilterExample-Objekt wird ein Verschiebungsmatrixfilter angewendet. Der allgemeine Workflow dieses Beispiels lautet wie folgt:
  1. Die Klasse definiert Variablen für die Hintergrundfarbe, die Textfeldbezeichnung sowie die Größe und den Versatz, die in verschiedenen Funktionen verwendet werden.
  2. Die Konstruktorfunktion ruft die Methode draw() auf. Diese Methode verwendet Methoden der Graphics-Klasse, um ein Quadrat mit einer radialen Farbverlaufsfüllung zu zeichnen. Beachten Sie, dass es sich bei graphics um eine Eigenschaft des DisplacementMapFilterExample-Objekts handelt, mit dem die Klasse Sprite erweitert wird.
  3. Die Konstruktorfunktion ruft die Methode createLabel() auf, mit der ein Textfeld erstellt wird. In diesem Feld wird der Wert von labelText angezeigt und in die Anzeigeliste aufgenommen.
  4. Die Konstruktorfunktion ruft die Methode createFilter() auf, die Folgendes bewirkt:
    • Erstellt für das Filterobjekt eine Variable mit dem Namen filter.
    • Ruft die Methode getDisplacementMapFilter() auf und weist den Rückgabewert der Variablen filter zu.
    • Übergibt filter an die filters-Eigenschaft des DisplacementFilterExample-Objekts (die Hauptklasse).
  5. Mit der Methode getBitmapFilter() wird ein BitmapData-Objekt mit dem Namen mapBitmap erstellt, dem das Ergebnis der Methode createBitmapData() zugewiesen wird. Die Methode mapBitmap definiert zusammen mit anderen Variablen einen neuen Verschiebungsmatrixfilter.
  6. Die Methode createBitmapData() erstellt ein neues BitmapData-Objekt, das auf dem aktuellen Inhalt des DisplacementMapFilterExample-Objekts basiert. Auf der Basis von bitmapData wird eine neue Bitmap erstellt, die zur Bühne hinzugefügt wird.
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.BitmapDataChannel; import flash.display.GradientType; import flash.display.SpreadMethod; import flash.display.Sprite; import flash.filters.BitmapFilter; import flash.filters.DisplacementMapFilter; import flash.filters.DisplacementMapFilterMode; import flash.geom.Matrix; import flash.geom.Point; import flash.text.TextField; public class DisplacementMapFilterExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 200; private var offset:uint = 90; private var labelText:String = "Watch the text bend with the displacement map"; public function DisplacementMapFilterExample() { draw(); createLabel(); createFilter(); } private function createFilter():void { var filter:BitmapFilter = getBitmapFilter(); filters = new Array(filter); } private function getBitmapFilter():BitmapFilter { var mapBitmap:BitmapData = createBitmapData(); var mapPoint:Point = new Point(0, 0); var channels:uint = BitmapDataChannel.RED; var componentX:uint = channels; var componentY:uint = channels; var scaleX:Number = 0.5; var scaleY:Number = -30; var mode:String = DisplacementMapFilterMode.CLAMP; var color:uint = 0; var alpha:Number = 0; return new DisplacementMapFilter(mapBitmap, mapPoint, componentX, componentY, scaleX, scaleY, mode, color, alpha); } private function draw():void { var matrix:Matrix = new Matrix(); matrix.createGradientBox(size, size); graphics.beginGradientFill(GradientType.RADIAL, [0xFF0000, 0x0000FF], [100, 100], [55, 200], matrix, SpreadMethod.PAD); graphics.drawRect(0, 0, size, size); } private function createBitmapData():BitmapData { var bitmapData:BitmapData = new BitmapData(size, size, true, bgColor); bitmapData.draw(this, new Matrix()); var bitmap:Bitmap = new Bitmap(bitmapData); bitmap.x = size; addChild(bitmap); return bitmapData; } private function createLabel():void { var tf:TextField = new TextField(); tf.text = labelText; tf.y = offset; tf.width = size; addChild(tf); } } }
flash.display.BitmapData.applyFilter()flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapDisplacementMapFilter Initialisiert eine neue DisplacementMapFilter-Instanz mit den angegebenen Parametern.mapBitmapflash.display:BitmapDatanullEin BitmapData-Objekt mit den Daten der Verschiebungsmatrix. mapPointflash.geom:PointnullEin Wert mit dem Offset der linken oberen Ecke des Zielanzeigeobjekts zur linken oberen Ecke des Matrixbilds. componentXuint0Gibt den Farbkanal im Matrixbild an, mit dem das x-Ergebnis verschoben wird. Zulässige Werte sind die BitmapDataChannel-Konstanten. componentYuint0Gibt den Farbkanal im Matrixbild an, mit dem das y-Ergebnis verschoben wird. Zulässige Werte sind die BitmapDataChannel-Konstanten. scaleXNumber0.0Der Multiplikator, anhand dessen das auf der Matrixberechnung beruhende Ergebnis der x-Verschiebung skaliert wird. scaleYNumber0.0Der Multiplikator, mit dem das auf der Matrixberechnung beruhende Ergebnis der y-Verschiebung skaliert wird. modeStringwrapDer Filtermodus. Zulässige Werte sind die DisplacementMapFilterMode-Konstanten. coloruint0Gibt an, welche Farbe für Verschiebungen außerhalb des gültigen Bereichs verwendet werden soll. Der zulässige Bereich für Verschiebungen liegt zwischen 0,0 und 1,0. Verwenden Sie diesen Parameter, wenn mode auf DisplacementMapFilterMode.COLOR gesetzt wurde. alphaNumber0.0Gibt an, welcher Alphawert für Verschiebungen außerhalb des gültigen Bereichs verwendet werden soll. Wird als normalisierter Wert zwischen 0,0 und 1,0 angegeben. Mit dem Wert 0,25 wird beispielsweise ein Transparenzwert von 25 % festgelegt. Verwenden Sie diesen Parameter, wenn mode auf DisplacementMapFilterMode.COLOR gesetzt wurde. Initialisiert eine neue DisplacementMapFilter-Instanz. Initialisiert eine neue DisplacementMapFilter-Instanz mit den angegebenen Parametern. flash.display.BitmapDataChannelflash.filters.DisplacementMapFilterModeclone Gibt eine Kopie dieses Filterobjekts zurück.Eine neue DisplacementMapFilter-Instanz mit allen Eigenschaften der ursprünglichen Instanz. flash.filters:BitmapFilter Gibt eine Kopie dieses Filterobjekts zurück. alpha Gibt an, welcher Alphatransparenzwert für Verschiebungen außerhalb des gültigen Bereichs verwendet werden soll.Number Gibt an, welcher Alphatransparenzwert für Verschiebungen außerhalb des gültigen Bereichs verwendet werden soll. Wird als normalisierter Wert zwischen 0,0 und 1,0 angegeben. Mit dem Wert 0,25 wird beispielsweise ein Transparenzwert von 25 % festgelegt. Der Standardwert ist 0. Verwenden Sie diese Eigenschaft, wenn die Eigenschaft mode auf DisplacementMapFilterMode.COLOR gesetzt wurde. color Gibt an, welche Farbe für Verschiebungen außerhalb des gültigen Bereichs verwendet werden soll.uint Gibt an, welche Farbe für Verschiebungen außerhalb des gültigen Bereichs verwendet werden soll. Der zulässige Bereich für Verschiebungen liegt zwischen 0,0 und 1,0. Die Werte liegen im hexadezimalen Format vor. Der Standardwert für color lautet 0. Verwenden Sie diese Eigenschaft, wenn die Eigenschaft mode auf DisplacementMapFilterMode.COLOR gesetzt wurde. componentX Gibt den Farbkanal im Matrixbild an, mit dem das x-Ergebnis verschoben wird.uintDer zum Verschieben des x-Ergebnisses zu verwendende Farbkanal. Gibt den Farbkanal im Matrixbild an, mit dem das x-Ergebnis verschoben wird. Zulässige Werte sind die BitmapDataChannel-Konstanten:
  • BitmapDataChannel.ALPHA
  • BitmapDataChannel.BLUE
  • BitmapDataChannel.GREEN
  • BitmapDataChannel.RED
flash.display.BitmapDataChannel
componentY Gibt den Farbkanal im Matrixbild an, mit dem das y-Ergebnis verschoben wird.uint Gibt den Farbkanal im Matrixbild an, mit dem das y-Ergebnis verschoben wird. Zulässige Werte sind die BitmapDataChannel-Konstanten:
  • BitmapDataChannel.ALPHA
  • BitmapDataChannel.BLUE
  • BitmapDataChannel.GREEN
  • BitmapDataChannel.RED
flash.display.BitmapDataChannel
mapBitmap Ein BitmapData-Objekt mit den Daten der Verschiebungsmatrix.flash.display:BitmapDataDas BitmapData-Objekt ist leer (null), wenn gesetzt. TypeErrorTypeError Ein BitmapData-Objekt mit den Daten der Verschiebungsmatrix. flash.display.BitmapDatamapPoint Ein Wert mit dem Offset der linken oberen Ecke des Zielanzeigeobjekts zur linken oberen Ecke des Matrixbilds.flash.geom:PointDas Point-Objekt ist leer (null), wenn gesetzt. TypeErrorTypeError Ein Wert mit dem Offset der linken oberen Ecke des Zielanzeigeobjekts zur linken oberen Ecke des Matrixbilds. flash.geom.Pointmode Der Filtermodus.StringDer String ist leer, wenn gesetzt. TypeErrorTypeErrorDer String für den Filtermodus gehört nicht zu den gültigen Typen. ArgumentErrorArgumentError Der Filtermodus. Zulässige Werte sind die DisplacementMapFilterMode-Konstanten:
  • DisplacementMapFilterMode.WRAP – Verlegt den Verschiebungswert auf die andere Seite des Quellbilds.
  • DisplacementMapFilterMode.CLAMP – Setzt den Verschiebungswert auf die Kante des Quellbilds.
  • DisplacementMapFilterMode.IGNORE – Liegt der Verschiebungswert außerhalb des gültigen Bereichs, wird die Verschiebung ignoriert, und es werden die Quellpixel verwendet.
  • DisplacementMapFilterMode.COLOR – Liegt der Verschiebungswert außerhalb des Bildes, werden die Werte der Eigenschaften color und alpha ersetzt.
flash.filters.DisplacementMapFilterMode
scaleX Der Multiplikator, anhand dessen das auf der Matrixberechnung beruhende Ergebnis der x-Verschiebung skaliert wird.Number Der Multiplikator, anhand dessen das auf der Matrixberechnung beruhende Ergebnis der x-Verschiebung skaliert wird. scaleY Der Multiplikator, anhand dessen das auf der Matrixberechnung beruhende Ergebnis der y-Verschiebung skaliert wird.Number Der Multiplikator, mit dem das auf der Matrixberechnung beruhende Ergebnis der y-Verschiebung skaliert wird.
BitmapFilterType Die BitmapFilterType-Klasse enthält Werte, mit denen der Typ von BitmapFilter-Objekten festgelegt wird.Object Die BitmapFilterType-Klasse enthält Werte, mit denen der Typ von BitmapFilter-Objekten festgelegt wird. Im folgenden Beispiel wird ein graues Quadrat gezeichnet, auf das ein BevelFilter-Objekt angewendet wird. In diesem Beispiel erfolgt die Einstellung der Eigenschaft type mithilfe der Konstante BitmapFilterType.HIGH. package { import flash.display.Sprite; import flash.filters.BevelFilter; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; public class BitmapFilterTypeExample extends Sprite { private var bgColor:uint = 0x999999; private var size:uint = 80; private var offset:uint = 50; public function BitmapFilterTypeExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { var distance:Number = 5; var angleInDegrees:Number = 45; var highlightColor:Number = 0xCCCCCC; var highlightAlpha:Number = 0.8; var shadowColor:Number = 0x808080; var shadowAlpha:Number = 0.8; var blurX:Number = 5; var blurY:Number = 5; var strength:Number = 5; var quality:Number = BitmapFilterQuality.HIGH; var type:String = BitmapFilterType.INNER; var knockout:Boolean = false; return new BevelFilter(distance, angleInDegrees, highlightColor, highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } } BevelFilterGradientBevelFilterGradientGlowFilterFULL Definiert die Einstellung, mit der ein Filter auf den gesamten Bereich eines Objekts angewendet wird.fullString Definiert die Einstellung, mit der ein Filter auf den gesamten Bereich eines Objekts angewendet wird. INNER Definiert die Einstellung, mit der ein Filter auf den inneren Bereich eines Objekts angewendet wird.innerString Definiert die Einstellung, mit der ein Filter auf den inneren Bereich eines Objekts angewendet wird. OUTER Definiert die Einstellung, mit der ein Filter auf den äußeren Bereich eines Objekts angewendet wird.outerString Definiert die Einstellung, mit der ein Filter auf den äußeren Bereich eines Objekts angewendet wird. DropShadowFilter Mit der DropShadowFilter-Klasse können Sie einem Anzeigeobjekt einen Schlagschatten hinzufügen.flash.filters:BitmapFilter Mit der DropShadowFilter-Klasse können Sie einem Anzeigeobjekt einen Schlagschatten hinzufügen. Der Schattenalgorithmus beruht auf dem gleichen Box-Filter, der auch beim Weichzeichnen-Filter verwendet wird. Für den Stil eines Schlagschattens stehen verschiedene Optionen zur Verfügung, z. B. innere und äußere Schatten oder der Aussparungsmodus. Sie können den Filter auf jedes Anzeigeobjekt anwenden (d. h. Objekte, die von der DisplayObject-Klasse erben), z. B. auf MovieClip-, SimpleButton-, TextField-, Video- sowie BitmapData-Objekte.

Die Verwendung von Filtern hängt davon ab, auf welches Objekt sie jeweils angewendet werden:

  • Um Filter auf Anzeigeobjekte anzuwenden, verwenden Sie die filters-Eigenschaft (von DisplayObject übernommen). Durch die Einstellung der filters-Eigenschaft wird das betroffene Objekt selbst nicht verändert, und Sie können den Filter wieder entfernen, indem Sie die filters-Eigenschaft löschen.
  • Um Filter auf BitmapData-Objekte anzuwenden, verwenden Sie die BitmapData.applyFilter()-Methode. Durch den Aufruf von applyFilter() bei einem BitmapData-Objekt wird das gefilterte Bild aus dem BitmapData-Quellobjekt und dem Filterobjekt generiert.

Wenn Sie einen Filter auf ein Anzeigeobjekt anwenden, wird der Wert der cacheAsBitmap-Eigenschaft des Anzeigeobjekts auf true gesetzt. Wenn Sie alle Filter entfernen, wird der ursprüngliche Wert von cacheAsBitmap wiederhergestellt.

Dieser Filter unterstützt Bühnenskalierung. Allgemeine Skalierung, Drehung und Neigung werden dagegen nicht unterstützt. Wenn das Objekt selbst skaliert wird (also die Eigenschaften scaleX und scaleY ungleich 1,0 sind), wird der Filtereffekt nicht skaliert. Er wird nur dann skaliert, wenn die Bühne vergrößert dargestellt wird.

Ein Filter wird nicht angewendet, wenn das Ergebnisbild die maximalen Abmessungen überschreitet. In AIR 1.5 und Flash Player 10 beträgt die maximale Höhe oder Breite 8.191 Pixel; die gesamte Pixelzahl darf 16.777.215 nicht übersteigen. (Wenn ein Bild also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite. Wenn Sie beispielsweise einen großen Movieclip mit aktiviertem Filter vergrößert darstellen, wird der Filter deaktiviert, sobald das Ergebnisbild die maximalen Abmessungen überschreitet.

Im folgenden Beispiel wird ein gelbes Quadrat erstellt, auf das ein Schlagschatten angewendet wird. Der allgemeine Workflow dieses Beispiels lautet wie folgt:
  1. Deklarieren Sie drei Eigenschaften, mit denen das Quadrat gezeichnet und auf das der Filter angewendet wird.
  2. Erstellen Sie die Konstruktorfunktion. Der Konstruktor ruft die Methode draw() auf. Diese Methode verwendet Methoden der Graphics-Klasse, auf die über die Eigenschaft graphics der Klasse Sprite zugegriffen wird, um ein orangefarbenes Quadrat zu zeichnen.
  3. Deklarieren Sie im Konstruktor die Variable filter als BitmapFilter-Objekt, und weisen Sie es dem Wert zu, der sich aus dem Aufruf von getBitmapFilter() ergibt. Mit der Methode getBitmapFilter() wird der verwendete Schlagschatten-Filter definiert.
  4. Erstellen Sie neues Array-Objekt myFilters, und fügen Sie filter zum Array hinzu. Weisen Sie den Array myFilters der Eigenschaft filters des DropShadowFilterExample-Objekts zu. Dadurch werden alle in myFilters vorgefundenen Filter angewendet; in diesem Fall nur filter.
package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.DropShadowFilter; public class DropShadowFilterExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; private var offset:uint = 50; public function DropShadowFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { var color:Number = 0x000000; var angle:Number = 45; var alpha:Number = 0.8; var blurX:Number = 8; var blurY:Number = 8; var distance:Number = 15; var strength:Number = 0.65; var inner:Boolean = false; var knockout:Boolean = false; var quality:Number = BitmapFilterQuality.HIGH; return new DropShadowFilter(distance, angle, color, alpha, blurX, blurY, strength, quality, inner, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
flash.display.BitmapData.applyFilter()flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapDropShadowFilter Erstellt eine neue DropShadowFilter-Instanz mit den angegebenen Parametern.distanceNumber4.0Der Offset des Schattens in Pixeln. angleNumber45Der Winkel des Schattens von 0 bis 360 Grad (Gleitkommazahl). coloruint0Die Farbe des Schattens im Hexadezimalformat 0xRRGGBB. Der Standardwert lautet 0x000000. alphaNumber1.0Der Alphatransparenzwert der Schattenfarbe. Die zulässigen Werte liegen zwischen 0,0 und 1,0. Mit dem Wert 0,25 wird beispielsweise ein Transparenzwert von 25 % festgelegt. blurXNumber4.0Der Grad der horizontalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255.0 (Gleitkomma). blurYNumber4.0Der Grad der vertikalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255.0 (Gleitkomma). strengthNumber1.0Die Stärke des Abdrucks oder Auftragens. Je höher der Wert, desto mehr Farbe wird aufgetragen und desto stärker ist der Kontrast zwischen dem Schatten und dem Hintergrund. Die zulässigen Werte liegen zwischen 0 und 255.0. qualityint1Gibt an, wie oft der Filter angewendet werden soll. Verwenden Sie die BitmapFilterQuality-Konstanten:
  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

Weitere Informationen zu diesem Parameter finden Sie in der Beschreibung der quality-Eigenschaft.

innerBooleanfalseGibt an, ob es sich bei dem Schatten um einen inneren Schatten handelt. Der Wert true gibt einen inneren Schatten an. Der Wert false gibt einen äußeren Schatten an, d. h. einen Schatten um die äußeren Ränder des Objekts. knockoutBooleanfalseWendet einen Aussparungseffekt (true) an, der die Objektfüllung transparent macht und die Hintergrundfarbe des Dokuments zum Vorschein bringt. hideObjectBooleanfalseGibt an, ob das Objekt ausgeblendet wird oder nicht. Der Wert true gibt an, dass nicht das Objekt selbst sondern nur sein Schatten sichtbar ist.
Erstellt eine neue DropShadowFilter-Instanz mit den angegebenen Parametern.
flash.filters.BitmapFilterQuality
clone Gibt eine Kopie dieses Filterobjekts zurück.Eine neue DropShadowFilter-Instanz mit allen Eigenschaften der ursprünglichen Instanz. flash.filters:BitmapFilter Gibt eine Kopie dieses Filterobjekts zurück. alpha Der Alphatransparenzwert der Schattenfarbe.Number Der Alphatransparenzwert der Schattenfarbe. Die zulässigen Werte liegen zwischen 0.0 und 1.0. Mit dem Wert 0,25 wird beispielsweise ein Transparenzwert von 25 % festgelegt. Der Standardwert ist 1.0. angle Der Winkel des Schattens.Number Der Winkel des Schattens. Die zulässigen Werte liegen zwischen 0 und 360 Grad (Gleitkommazahl). Der Standardwert ist 45. blurX Der Grad der horizontalen Weichzeichnung.Number Der Grad der horizontalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255.0 (Gleitkomma). Der Standardwert ist 4.0. blurY Der Grad der vertikalen Weichzeichnung.Number Der Grad der vertikalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255.0 (Gleitkomma). Der Standardwert ist 4.0. color Die Farbe des Schattens.uint Die Farbe des Schattens. Die zulässigen Werte werden im Hexadezimalformat 0xRRGGBB angegeben. Der Standardwert lautet 0x000000. distance Der Versatz des Schattens in Pixel.Number Der Versatz des Schattens in Pixel. Der Standardwert lautet 4,0 (Gleitkommazahl). hideObject Gibt an, ob das Objekt ausgeblendet wird oder nicht.Boolean Gibt an, ob das Objekt ausgeblendet wird oder nicht. Der Wert true gibt an, dass nicht das Objekt selbst sondern nur sein Schatten sichtbar ist. Der Standardwert lautet false (das Objekt wird angezeigt). inner Gibt an, ob es sich bei dem Schatten um einen inneren Schatten handelt.Boolean Gibt an, ob es sich bei dem Schatten um einen inneren Schatten handelt. Der Wert true zeigt einen inneren Schatten an. Der Standardwert lautet false, gibt also einen äußeren Schatten an, d. h. einen Schatten um die äußeren Ränder des Objekts. knockout Wendet einen Aussparungseffekt (true) an, der die Objektfüllung transparent macht und die Hintergrundfarbe des Dokuments zum Vorschein bringt.Boolean Wendet einen Aussparungseffekt (true) an, der die Objektfüllung transparent macht und die Hintergrundfarbe des Dokuments zum Vorschein bringt. Der Standardwert lautet false (keine Aussparung). quality Gibt an, wie oft der Filter angewendet werden soll.int Gibt an, wie oft der Filter angewendet werden soll. Der Standardwert lautet BitmapFilterQuality.LOW, was einer einmaligen Anwendung des Filters entspricht. Mit dem Wert BitmapFilterQuality.MEDIUM wird der Filter zweimal angewendet und mit dem Wert BitmapFilterQuality.HIGH dreimal. Filter mit niedrigen Werten werden schneller dargestellt.

In den meisten Fällen reicht die Angabe der niedrigen, mittleren oder hohen Qualität für „quality“ aus. Sie können zwar Werte bis 15 angeben, um unterschiedliche Effekte zu erzielen, höhere Werte führen jedoch auch zu einer langsameren Darstellung. Anstatt also den Wert von quality zu erhöhen, können Sie einen ähnlichen Effekt mit gleichzeitig schnellerer Darstellung erzielen, indem Sie einfach die Eigenschaftswerte von blurX und blurY erhöhen.

flash.filters.BitmapFilterQuality
strength Die Stärke des Abdrucks oder Auftragens.Number Die Stärke des Abdrucks oder Auftragens. Je höher der Wert, desto mehr Farbe wird aufgetragen und desto stärker ist der Kontrast zwischen dem Schatten und dem Hintergrund. Die zulässigen Werte liegen zwischen 0 und 255.0. Der Standardwert lautet 1.0.
BitmapFilterQuality Die BitmapFilterQuality-Klasse enthält Werte, mit denen die Darstellungsqualität von BitmapFilter-Objekten festgelegt werden kann.Object Die BitmapFilterQuality-Klasse enthält Werte, mit denen die Darstellungsqualität von BitmapFilter-Objekten festgelegt werden kann. Im folgenden Beispiel wird ein graues Quadrat gezeichnet, auf das ein BevelFilter-Objekt angewendet wird. In diesem Beispiel erfolgt die Einstellung der Eigenschaft quality mithilfe der Konstante BitmapFilterQuality.HIGH. package { import flash.display.Sprite; import flash.filters.BevelFilter; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; public class BitmapFilterQualityExample extends Sprite { private var bgColor:uint = 0x999999; private var size:uint = 80; private var offset:uint = 50; public function BitmapFilterQualityExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { var distance:Number = 5; var angleInDegrees:Number = 45; var highlightColor:Number = 0xCCCCCC; var highlightAlpha:Number = 0.8; var shadowColor:Number = 0x808080; var shadowAlpha:Number = 0.8; var blurX:Number = 5; var blurY:Number = 5; var strength:Number = 5; var quality:Number = BitmapFilterQuality.HIGH; var type:String = BitmapFilterType.INNER; var knockout:Boolean = false; return new BevelFilter(distance, angleInDegrees, highlightColor, highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } } BevelFilterBlurFilterGlowFilterDropShadowFilterGradientBevelFilterGradientGlowFilterHIGH Definiert die Filtereinstellung für hohe Qualität.3int Definiert die Filtereinstellung für hohe Qualität. LOW Definiert die Filtereinstellung für niedrige Qualität.1int Definiert die Filtereinstellung für niedrige Qualität. MEDIUM Definiert die Filtereinstellung für mittlere Qualität.2int Definiert die Filtereinstellung für mittlere Qualität. DisplacementMapFilterMode Die DisplacementMapFilterMode-Klasse stellt Werte für die „mode“-Eigenschaft der DisplacementMapFilter-Klasse bereit.Object Die DisplacementMapFilterMode-Klasse stellt Werte für die mode-Eigenschaft der DisplacementMapFilter-Klasse bereit. CLAMP Setzt den Verschiebungswert auf die Kante des Quellbilds.clampString Setzt den Verschiebungswert auf die Kante des Quellbilds. Verwenden Sie diesen Wert mit der DisplacementMapFilter.mode-Eigenschaft. flash.filters.DisplacementMapFilter.modeCOLOR Liegt der Verschiebungswert außerhalb des Bilds, werden die Werte der Eigenschaften „color“ und „alpha“ ersetzt.colorString Wenn der Verschiebungswert außerhalb des Bilds liegt, werden die Werte der Eigenschaften color und alpha ersetzt. Verwenden Sie diesen Wert mit der DisplacementMapFilter.mode-Eigenschaft. flash.filters.DisplacementMapFilter.modeIGNORE Wenn der Verschiebungswert außerhalb des gültigen Bereichs liegt, wird die Verschiebung ignoriert, und es werden die Quellpixel verwendet.ignoreString Wenn der Verschiebungswert außerhalb des gültigen Bereichs liegt, wird die Verschiebung ignoriert, und es werden die Quellpixel verwendet. Verwenden Sie diesen Wert mit der DisplacementMapFilter.mode-Eigenschaft. flash.filters.DisplacementMapFilter.modeWRAP Verlegt den Verschiebungswert auf die andere Seite des Quellbilds.wrapString Verlegt den Verschiebungswert auf die andere Seite des Quellbilds. Verwenden Sie diesen Wert mit der DisplacementMapFilter.mode-Eigenschaft. flash.filters.DisplacementMapFilter.modeBevelFilter Mit der BevelFilter-Klasse können Sie einen Abschrägungseffekt auf Anzeigeobjekte anwenden.Fügt einen Abschrägungseffekt hinzu. flash.filters:BitmapFilter Mit der BevelFilter-Klasse können Sie einen Abschrägungseffekt auf Anzeigeobjekte anwenden. Durch diesen Abschrägungseffekt erhalten Objekte, beispielsweise Schaltflächen, ein dreidimensionales Aussehen mit abgeflachten Kanten. Dabei haben Sie die Möglichkeit, diesen Effekt mithilfe verschiedener Glanzlicht- und Schattenfarben anzupassen. Darüber hinaus können Sie die Weichzeichnung, den Winkel und die Position der abgeflachten Kanten und des Aussparungseffekts festlegen. Sie können den Filter auf jedes Anzeigeobjekt anwenden (d. h. Objekte, die von der DisplayObject-Klasse erben), z. B. auf MovieClip-, SimpleButton-, TextField-, Video- sowie BitmapData-Objekte.

Verwenden Sie zum Erstellen eines neuen Filters den Konstruktor new BevelFilter(). Die Verwendung von Filtern hängt davon ab, auf welches Objekt sie jeweils angewendet werden:

  • Um Filter auf Movieclips, Textfelder, Schaltflächen und Videosequenzen anzuwenden, verwenden Sie die Eigenschaft filters (von DisplayObject übernommen). Durch die Einstellung der filters-Eigenschaft wird das betroffene Objekt selbst nicht verändert, und Sie können den Filter wieder entfernen, indem Sie die filters-Eigenschaft löschen.
  • Um Filter auf BitmapData-Objekte anzuwenden, verwenden Sie die BitmapData.applyFilter()-Methode. Durch den Aufruf von applyFilter() bei einem BitmapData-Objekt wird das gefilterte Bild aus dem BitmapData-Quellobjekt und dem Filterobjekt generiert.

Wenn Sie einen Filter auf ein Anzeigeobjekt anwenden, wird der Wert der cacheAsBitmap-Eigenschaft des Objekts auf true gesetzt. Wenn Sie alle Filter entfernen, wird der ursprüngliche Wert von cacheAsBitmap wiederhergestellt.

Dieser Filter unterstützt Bühnenskalierung. Allgemeine Skalierung, Drehung und Neigung werden dagegen nicht unterstützt. Wenn das Objekt selbst skaliert wird (also die Eigenschaften scaleX und scaleY ungleich 100 % sind), wird der Filtereffekt nicht skaliert. Er wird nur dann skaliert, wenn die Bühne vergrößert dargestellt wird.

Ein Filter wird nicht angewendet, wenn das Ergebnisbild die maximalen Abmessungen überschreitet. In AIR 1.5 und Flash Player 10 beträgt die maximale Höhe oder Breite 8.191 Pixel; die gesamte Pixelzahl darf 16.777.215 nicht übersteigen. (Wenn ein Bild also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite. Wenn Sie beispielsweise einen großen Movieclip mit aktiviertem Filter vergrößert darstellen, wird der Filter deaktiviert, sobald das Ergebnisbild die maximalen Abmessungen überschreitet.

Im folgenden Beispiel wird ein dunkelgelbes Quadrat erstellt, auf das ein leuchtend gelbes (0xFFFF00) Glanzlicht und ein blauer (0x0000FF) Schatten angewendet werden. Der allgemeine Workflow dieses Beispiels lautet wie folgt:
  1. Importieren Sie die erforderlichen Klassen.
  2. Deklarieren Sie drei Eigenschaften für die draw()-Funktion, mit der das Objekt, auf das der Abschrägungsfilter angewendet wird, gezeichnet wird.
  3. Erstellen Sie die BevelFilterExample()-Konstruktorfunktion, die Folgendes bewirkt:
    • Ruft die draw()-Funktion auf, die später deklariert wird.
    • Deklariert eine Variable filter als BitmapFilter-Objekt und weist es dem Wert zu, der sich aus dem Aufruf von getBitmapFilter() ergibt.
    • Erstellt ein neues Array-Objekt myFilters und fügt filter zum Array hinzu. Anschließend wird myFilters der filters-Eigenschaft des BevelFilterExample-Objekts zugewiesen. Dadurch werden alle in myFilters vorgefundenen Filter angewendet; in diesem Fall nur filter.
  4. Erstellen Sie die getBitmapFilter-Funktion, mit der Eigenschaften für den Filter erstellt und festgelegt werden.
  5. Erstellen Sie die draw()-Funktion. Diese Funktion verwendet Methoden der Graphics-Klasse, auf die über die Eigenschaft graphics der Sprite-Klasse zugegriffen wird, um das Quadrat zu zeichnen.
package { import flash.display.Sprite; import flash.filters.BevelFilter; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; public class BevelFilterExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; private var offset:uint = 50; public function BevelFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { var distance:Number = 5; var angleInDegrees:Number = 45; var highlightColor:Number = 0xFFFF00; var highlightAlpha:Number = 0.8; var shadowColor:Number = 0x0000FF; var shadowAlpha:Number = 0.8; var blurX:Number = 5; var blurY:Number = 5; var strength:Number = 5; var quality:Number = BitmapFilterQuality.HIGH; var type:String = BitmapFilterType.INNER; var knockout:Boolean = false; return new BevelFilter(distance, angleInDegrees, highlightColor, highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapflash.display.BitmapData.applyFilter()BevelFilter Initialisiert eine neue BevelFilter-Instanz mit den angegebenen Parametern.distanceNumber4.0Der Offset der Abschrägung in Pixeln (Gleitkommazahl). angleNumber45Der Winkel der Abschrägung von 0 bis 360 Grad. highlightColoruint0xFFFFFFDie Glanzlichtfarbe der Abschrägung im Format 0xRRGGBB. highlightAlphaNumber1.0Der Alphatransparenzwert der Glanzlichtfarbe. Die zulässigen Werte liegen zwischen 0,0 und 1,0. Mit dem Wert 0,25 wird beispielsweise ein Transparenzwert von 25 % festgelegt. shadowColoruint0x000000Die Schattenfarbe der Abschrägung im Format 0xRRGGBB. shadowAlphaNumber1.0Der Alphatransparenzwert der Schattenfarbe. Die zulässigen Werte liegen zwischen 0,0 und 1,0. Mit dem Wert 0,25 wird beispielsweise ein Transparenzwert von 25 % festgelegt. blurXNumber4.0Der Grad der horizontalen Weichzeichnung in Pixeln. Die zulässigen Werte liegen zwischen 0 und 255.0 (Gleitkomma). blurYNumber4.0Der Grad der vertikalen Weichzeichnung in Pixeln. Die zulässigen Werte liegen zwischen 0 und 255.0 (Gleitkomma). strengthNumber1Die Stärke des Abdrucks oder Auftragens. Je höher der Wert, desto mehr Farbe wird aufgetragen und desto stärker ist der Kontrast zwischen der Abschrägung und dem Hintergrund. Die zulässigen Werte liegen zwischen 0 und 255.0. qualityint1Die Qualität der Abschrägung. Die zulässigen Werte liegen zwischen 0 und 15. In den meisten Anwendungen können Sie jedoch die BitmapFilterQuality-Konstanten verwenden:
  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

Filter mit niedrigen Werten werden schneller dargestellt. Sie können die anderen verfügbaren Zahlenwerte verwenden, um andere Effekte zu erzielen.

typeStringinnerDer Typ der Abschrägung. Bei den zulässigen Werten handelt es sich um die BitmapFilterType-Konstanten: BitmapFilterType.INNER, BitmapFilterType.OUTER oder BitmapFilterType.FULL. knockoutBooleanfalseWendet einen Aussparungseffekt (true) an, der die Objektfüllung transparent macht und die Hintergrundfarbe des Dokuments zum Vorschein bringt.
Initialisiert eine neue BevelFilter-Instanz mit den angegebenen Parametern.
BitmapFilterQualityBitmapFilterType
clone Gibt eine Kopie dieses Filterobjekts zurück.Eine neue BevelFilter-Instanz mit allen Eigenschaften der ursprünglichen BevelFilter-Instanz. flash.filters:BitmapFilter Gibt eine Kopie dieses Filterobjekts zurück. angle Der Winkel der Abschrägung.Number Der Winkel der Abschrägung. Die zulässigen Werte liegen zwischen 0 und 360 Grad. Der Standardwert ist 45°.

Dieser Wert stellt den Winkel einer imaginären, das Objekt beleuchtenden Lichtquelle dar und bestimmt die Position des Effekts relativ zu diesem Objekt. Wenn die distance-Eigenschaft auf 0 (null) gesetzt wird, ist der Versatz des Effekts gleich null und die angle-Eigenschaft hat keine Auswirkungen.

blurX Der Grad der horizontalen Weichzeichnung in Pixel.Number Der Grad der horizontalen Weichzeichnung in Pixel. Die zulässigen Werte liegen zwischen 0 und 255,0 (Gleitkommazahl). Der Standardwert ist 4. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. blurY Der Grad der vertikalen Weichzeichnung in Pixel.Number Der Grad der vertikalen Weichzeichnung in Pixel. Die zulässigen Werte liegen zwischen 0 und 255,0 (Gleitkommazahl). Der Standardwert ist 4. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. distance Der Offset der Abschrägung.Number Der Offset der Abschrägung. Die zulässigen Werte sind in Pixeln angegeben (Gleitkommazahl). Der Standardwert ist 4. highlightAlpha Der Alphatransparenzwert der Glanzlichtfarbe.Number Der Alphatransparenzwert der Glanzlichtfarbe. Wird als normalisierter Wert von 0 bis 1 angegeben. Mit dem Wert 0,25 wird beispielsweise ein Transparenzwert von 25 % festgelegt. Der Standardwert ist 1. highlightColor Die Glanzlichtfarbe der Abschrägung.uint Die Glanzlichtfarbe der Abschrägung. Die zulässigen Werte werden im Hexadezimalformat 0xRRGGBB angegeben. Der Standardwert lautet 0xFFFFFF. knockout Wendet einen Aussparungseffekt (true) an, der die Objektfüllung transparent macht und die Hintergrundfarbe des Dokuments zum Vorschein bringt.Boolean Wendet einen Aussparungseffekt (true) an, der die Objektfüllung transparent macht und die Hintergrundfarbe des Dokuments zum Vorschein bringt. Der Standardwert lautet false (keine Aussparung). quality Gibt an, wie oft der Filter angewendet werden soll.int Gibt an, wie oft der Filter angewendet werden soll. Der Standardwert lautet BitmapFilterQuality.LOW, was einer einmaligen Anwendung des Filters entspricht. Mit dem Wert BitmapFilterQuality.MEDIUM wird der Filter zweimal angewendet und mit dem Wert BitmapFilterQuality.HIGH dreimal. Filter mit niedrigen Werten werden schneller dargestellt.

Bei den meisten Anwendungen genügt die Angabe der niedrigen, mittleren oder hohen Qualität für quality. Sie können zwar Werte bis 15 angeben, um unterschiedliche Effekte zu erzielen, höhere Werte führen jedoch auch zu einer langsameren Darstellung. Anstatt also den Wert von quality zu erhöhen, können Sie einen ähnlichen Effekt mit gleichzeitig schnellerer Darstellung erzielen, indem Sie einfach die Eigenschaftswerte von blurX und blurY erhöhen.

Mithilfe der folgenden BitmapFilterQuality-Konstanten können Sie die Werte der quality-Eigenschaft einstellen:

  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

shadowAlpha Der Alphatransparenzwert der Schattenfarbe.Number Der Alphatransparenzwert der Schattenfarbe. Wird als normalisierter Wert von 0 bis 1 angegeben. Mit dem Wert 0,25 wird beispielsweise ein Transparenzwert von 25 % festgelegt. Der Standardwert ist 1. shadowColor Die Schattenfarbe der Abschrägung.uint Die Schattenfarbe der Abschrägung. Die zulässigen Werte werden im Hexadezimalformat 0xRRGGBB angegeben. Der Standardwert lautet 0x000000. strength Die Stärke des Abdrucks oder Auftragens.Number Die Stärke des Abdrucks oder Auftragens. Die zulässigen Werte liegen zwischen 0 und 255. Je höher der Wert, desto mehr Farbe wird aufgedruckt und desto stärker ist der Kontrast zwischen der Abschrägung und dem Hintergrund. Der Standardwert ist 1. type Die Platzierung der Abschrägung auf dem Objekt.StringDer String ist leer, wenn gesetzt. TypeErrorTypeError Die Platzierung der Abschrägung auf dem Objekt. Innere und äußere Abschrägungen werden an der Innen- bzw. Außenkante platziert. Eine vollständige Abschrägung wird auf das gesamte Objekt platziert. Bei den zulässigen Werten handelt es sich um die BitmapFilterType-Konstanten:
  • BitmapFilterType.INNER
  • BitmapFilterType.OUTER
  • BitmapFilterType.FULL
BitmapFilter Die BitmapFilter-Klasse ist die Basisklasse für alle Bildfiltereffekte.Basisklasse für alle Bildfiltereffekte. Object Die BitmapFilter-Klasse ist die Basisklasse für alle Bildfiltereffekte.

Die Klassen BevelFilter, BlurFilter, ColorMatrixFilter, ConvolutionFilter, DisplacementMapFilter, DropShadowFilter, GlowFilter, GradientBevelFilter und GradientGlowFilter erweitern die BitmapFilter-Klasse. Diese Filter können auf alle Anzeigeobjekte angewendet werden.

Sie können BitmapFilter-Objekte weder direkt instanziieren noch direkt erweitern.

Im folgenden Beispiel wird gezeigt, wie mehrere Filter auf ein DisplayObject-Objekt angewendet und mit der Eigenschaft filters verfolgt werden können. package { import flash.display.Sprite; import flash.filters.*; public class BitmapFilterExample extends Sprite { public function BitmapFilterExample() { trace(this.filters.length); // 0 var tmpFilters:Array = this.filters; tmpFilters.push(FilterFactory.createFilter(FilterFactory.BEVEL_FILTER)); tmpFilters.push(FilterFactory.createFilter(FilterFactory.GLOW_FILTER)); this.filters = tmpFilters; trace(this.filters.length); // 2 trace(this.filters[0] is BitmapFilter); // true trace(this.filters[0] is BevelFilter); // true trace(this.filters[1] is BitmapFilter); // true trace(this.filters[1] is GlowFilter); // true } } } import flash.filters.*; class FilterFactory { public static var BEVEL_FILTER:String = "BevelFilter"; public static var BevelFilterConstructor:Class = BevelFilter; public static var BLUR_FILTER:String = "BlurFilter"; public static var BlurFilterConstructor:Class = BlurFilter; public static var COLOR_MATRIX_FILTER:String = "ColorMatrixFilter"; public static var ColorMatrixFilterConstructor:Class = ColorMatrixFilter; public static var CONVOLUTION_FILTER:String = "ConvolutionFilter"; public static var ConvolutionFilterConstructor:Class = ConvolutionFilter; public static var DISPLACEMENT_MAP_FILTER:String = "DisplacementMapFilter"; public static var DisplacementMapFilterConstructor:Class = DisplacementMapFilter; public static var DROP_SHADOW_FILTER:String = "DropShadowFilter"; public static var DropShadowFilterConstructor:Class = DropShadowFilter; public static var GLOW_FILTER:String = "GlowFilter"; public static var GlowFilterConstructor:Class = GlowFilter; public static var GRADIENT_BEVEL_FILTER:String = "GradientBevelFilter"; public static var GradientBevelFilterConstructor:Class = GradientBevelFilter; public static var GRADIENT_GLOW_FILTER:String = "GradientGlowFilter"; public static var GradientGlowFilterConstructor:Class = GradientGlowFilter; public static function createFilter(type:String):BitmapFilter { return new FilterFactory[type + "Constructor"](); } }
clone Gibt ein BitmapFilter-Objekt zurück, das eine exakte Kopie des ursprünglichen BitmapFilter-Objekts ist.Ein BitmapFilter-Objekt. flash.filters:BitmapFilterEine Kopie des BitmapFilter-Objekts. Gibt ein BitmapFilter-Objekt zurück, das eine exakte Kopie des ursprünglichen BitmapFilter-Objekts ist.
BlurFilter Mit der BlurFilter-Klasse können Sie einen Weichzeichnungseffekt auf Anzeigeobjekte anwenden.Ein Weichzeichnungseffekt. flash.filters:BitmapFilter Mit der BlurFilter-Klasse können Sie einen Weichzeichnungseffekt auf Anzeigeobjekte anwenden. Die Weichzeichnung verwischt die Einzelheiten eines Bilds. Dabei können Sie Weichzeichnungen erstellen, die von einer geringfügig unscharfen Anzeige bis zu einer Gauß-Weichzeichnung reichen, einer verschwommenen Sicht, etwa wie durch eine Milchglasscheibe. Wird die quality-Eigenschaft dieses Filter dabei auf „Niedrig“ gesetzt, führt dies zu einem geringfügig unscharfen Erscheinungsbild generiert. Wird die quality-Eigenschaft dagegen auf „Hoch“ eingestellt, ergibt dies in etwa ein Gauß-Verwischen. Sie können den Filter auf jedes Anzeigeobjekt anwenden (d. h. Objekte, die von der DisplayObject-Klasse erben), z. B. auf MovieClip-, SimpleButton-, TextField-, Video- sowie BitmapData-Objekte.

Verwenden Sie zum Erstellen eines neuen Filters den newBlurFilter()-Konstruktor. Die Verwendung von Filtern hängt davon ab, auf welches Objekt sie jeweils angewendet werden:

  • Um Filter auf Movieclips, Textfelder, Schaltflächen und Videosequenzen anzuwenden, verwenden Sie die Eigenschaft filters (von DisplayObject übernommen). Durch die Einstellung der filters-Eigenschaft wird das betroffene Objekt selbst nicht verändert, und Sie können den Filter wieder entfernen, indem Sie die filters-Eigenschaft löschen.
  • Um Filter auf BitmapData-Objekte anzuwenden, verwenden Sie die BitmapData.applyFilter()-Methode. Durch den Aufruf von applyFilter() bei einem BitmapData-Objekt wird das gefilterte Bild aus dem BitmapData-Quellobjekt und dem Filterobjekt generiert.

Wenn Sie einen Filter auf ein Anzeigeobjekt anwenden, wird die cacheAsBitmap-Eigenschaft des Anzeigeobjekts auf true gesetzt. Wenn Sie alle Filter entfernen, wird der ursprüngliche Wert von cacheAsBitmap wiederhergestellt.

Dieser Filter unterstützt Bühnenskalierung. Allgemeine Skalierung, Drehung und Neigung werden dagegen nicht unterstützt. Wenn das Objekt selbst skaliert wird (also die Eigenschaften scaleX und scaleY ungleich 100 % sind), wird der Filtereffekt nicht skaliert. Er wird nur dann skaliert, wenn die Bühne vergrößert dargestellt wird.

Ein Filter wird nicht angewendet, wenn das Ergebnisbild die maximalen Abmessungen überschreitet. In AIR 1.5 und Flash Player 10 beträgt die maximale Höhe oder Breite 8.191 Pixel; die gesamte Pixelzahl darf 16.777.215 nicht übersteigen. (Wenn ein Bild also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite. Wenn Sie beispielsweise einen großen Movieclip mit aktiviertem Filter vergrößert darstellen, wird der Filter deaktiviert, sobald das Ergebnisbild die maximalen Abmessungen überschreitet.

Im folgenden Beispiel wird ein dunkelgelbes Quadrat erstellt, auf das ein Gauß-Weichzeichnungsfilter angewendet wird. Der allgemeine Workflow dieses Beispiels lautet wie folgt:
  1. Importieren Sie die erforderlichen Klassen.
  2. Deklarieren Sie drei Eigenschaften für die draw()-Funktion, mit der das Objekt, auf das der Weichzeichnungsfilter angewendet wird, gezeichnet wird.
  3. Erstellen Sie die BlurFilterExample()-Konstruktorfunktion, die Folgendes bewirkt:
    • Ruft die draw()-Funktion auf, die später deklariert wird.
    • Deklariert eine Variable filter als BitmapFilter-Objekt und weist es dem Wert zu, der sich aus dem Aufruf von getBitmapFilter() ergibt.
    • Erstellt ein neues Array-Objekt myFilters und fügt filter zum Array hinzu. Anschließend wird myFilters der filters-Eigenschaft des BlurFilterExample-Objekts zugewiesen. Dadurch werden alle in myFilters vorgefundenen Filter angewendet; in diesem Fall nur filter.
  4. Erstellen Sie die getBitmapFilter()-Funktion, mit der Eigenschaften für den Filter erstellt und festgelegt werden.
  5. Erstellen Sie die draw()-Funktion. Diese Funktion verwendet Methoden der Graphics-Klasse, auf die über die Eigenschaft graphics der Sprite-Klasse zugegriffen wird, um das Quadrat zu zeichnen.
package { import flash.display.Sprite; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BlurFilter; public class BlurFilterExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; private var offset:uint = 50; public function BlurFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { var blurX:Number = 30; var blurY:Number = 30; return new BlurFilter(blurX, blurY, BitmapFilterQuality.HIGH); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapflash.display.BitmapData.applyFilter()BlurFilter Initialisiert den Filter mit den angegebenen Parametern.blurXNumber4.0Der Grad der horizontalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255,0 (Gleitkommazahl). blurYNumber4.0Der Grad der vertikalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255,0 (Gleitkommazahl). qualityint1Gibt an, wie oft der Filter angewendet werden soll. Sie können die Qualität mithilfe der folgenden „BitmapFilterQuality“-Konstanten festlegen:
  • flash.filters.BitmapFilterQuality.LOW
  • flash.filters.BitmapFilterQuality.MEDIUM
  • flash.filters.BitmapFilterQuality.HIGH

Hohe Qualität entspricht etwa einer Gauß-Weichzeichnung. Für die meisten Anwendungen sind diese drei Werte ausreichend. Sie können zwar weitere Zahlenwerte bis 15 angeben, um unterschiedliche Effekte zu erzielen, beachten Sie jedoch, dass höhere Werte auch zu einer langsameren Wiedergabe führen.

Initialisiert den Filter.
Initialisiert den Filter mit den angegebenen Parametern. Mit den Standardwerten wird ein weiches unscharfes Bild erstellt.
clone Gibt eine Kopie dieses Filterobjekts zurück.Eine neue „BlurFilter“-Instanz mit allen Eigenschaften der ursprünglichen „BlurFilter“-Instanz. flash.filters:BitmapFilter Gibt eine Kopie dieses Filterobjekts zurück. blurX Der Grad der horizontalen Weichzeichnung.Number Der Grad der horizontalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255,0 (Gleitkommazahl). Der Standardwert ist 4. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. blurY Der Grad der vertikalen Weichzeichnung.Number Der Grad der vertikalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255,0 (Gleitkommazahl). Der Standardwert ist 4. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. quality Gibt an, wie oft die Weichzeichnung durchgeführt werden soll.int Gibt an, wie oft die Weichzeichnung durchgeführt werden soll. Der Standardwert lautet BitmapFilterQuality.LOW, was einer einmaligen Anwendung des Filters entspricht. Mit dem Wert BitmapFilterQuality.MEDIUM wird der Filter zweimal angewendet und mit dem Wert BitmapFilterQuality.HIGH dreimal. Bei Letzterem entspricht der Effekt einer Gauß-Weichzeichnung. Filter mit niedrigen Werten werden schneller dargestellt.

Bei den meisten Anwendungen genügt die Angabe der niedrigen, mittleren oder hohen Qualität für quality. Sie können zwar Zahlenwerte bis 15 angeben, um die Anzahl der Filteranwendung zu erhöhen, höhere Werte führen jedoch auch zu einer langsameren Wiedergabe. Anstatt also den Wert von quality zu erhöhen, können Sie einen ähnlichen Effekt mit gleichzeitig schnellerer Darstellung erzielen, indem Sie einfach die Eigenschaftswerte von blurX und blurY erhöhen.

Mithilfe der folgenden BitmapFilterQuality-Konstanten können Sie die Werte für die quality-Eigenschaft festlegen:

  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH
GradientBevelFilter Mit der GradientBevelFilter-Klasse können Sie einen Farbverlaufseffekt und eine Abschrägung auf Anzeigeobjekte anwenden.Ermöglicht das Anwenden eines Farbverlaufseffekt und einer Abschrägung. flash.filters:BitmapFilter Mit der GradientBevelFilter-Klasse können Sie einen Farbverlaufseffekt und eine Abschrägung auf Anzeigeobjekte anwenden. Bei einem Farbverlauf mit Abschrägung handelt es sich um eine abgeflachte Kante, bei der die Außen-, Innen- oder Oberseite eines Objekts einen Farbverlauf erhielten. Abgeflachte Kanten lassen ein Objekt dreidimensional erscheinen. Sie können den Filter auf jedes Anzeigeobjekt anwenden (d. h. Objekte, die von der DisplayObject-Klasse erben), z. B. auf MovieClip-, SimpleButton-, TextField-, Video- sowie BitmapData-Objekte.

Die Verwendung von Filtern hängt davon ab, auf welches Objekt sie jeweils angewendet werden:

  • Um Filter auf Anzeigeobjekte anzuwenden, verwenden Sie die filters-Eigenschaft. Durch die Einstellung der filters-Eigenschaft wird das betroffene Objekt selbst nicht verändert, und Sie können den Filter wieder entfernen, indem Sie die filters-Eigenschaft löschen.
  • Um Filter auf BitmapData-Objekte anzuwenden, verwenden Sie die BitmapData.applyFilter()-Methode. Durch den Aufruf von applyFilter() bei einem BitmapData-Objekt wird das gefilterte Bild aus dem BitmapData-Quellobjekt und dem Filterobjekt generiert.

Wenn Sie einen Filter auf ein Anzeigeobjekt anwenden, wird die cacheAsBitmap-Eigenschaft des Anzeigeobjekts auf true gesetzt. Wenn Sie alle Filter entfernen, wird der ursprüngliche Wert von cacheAsBitmap wiederhergestellt.

Dieser Filter unterstützt Bühnenskalierung. Allgemeine Skalierung, Drehung und Neigung werden dagegen nicht unterstützt. Wenn das Objekt selbst skaliert wird (also scaleX und scaleY ungleich 1,0 sind), wird der Filtereffekt nicht skaliert. Er wird nur dann skaliert, wenn die Bühne vergrößert dargestellt wird.

Ein Filter wird nicht angewendet, wenn das Ergebnisbild die maximalen Abmessungen überschreitet. In AIR 1.5 und Flash Player 10 beträgt die maximale Höhe oder Breite 8.191 Pixel; die gesamte Pixelzahl darf 16.777.215 nicht übersteigen. (Wenn ein Bild also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite. Wenn Sie beispielsweise einen großen Movieclip mit aktiviertem Filter vergrößert darstellen, wird der Filter deaktiviert, sobald das Ergebnisbild die maximalen Abmessungen überschreitet.

Im folgenden Beispiel wird ein Quadrat gezeichnet, auf das ein Filter für Farbverlauf mit Abschrägung angewendet wird. Der allgemeine Workflow dieses Beispiels lautet wie folgt:
  1. Importieren Sie die erforderlichen Klassen.
  2. Deklarieren Sie die globalen Variablen, mit denen das Quadrat und der Filter definiert werden.
  3. Erstellen Sie die Konstruktorfunktionen, die Folgendes bewirkt:
    • Ruft die draw()-Methode auf. Diese Methode verwendet Methoden der Graphics-Klasse, auf die über die Eigenschaft graphics der Klasse Sprite zugegriffen wird, um ein graues Quadrat zu zeichnen.
    • Erstellt ein BitmapFilter-Objekt mit dem Namen filter und weist ihm den Wert zu, der sich aus dem Aufruf von getBitmapFilter() ergibt, mit dem der Filter erstellt wird.
    • Erstellt ein neues Array mit dem Namen myFilters und fügt filter hinzu.
    • Weist myFilters der filters-Eigenschaft des GradientBevelFilterExample-Objekts zu. Dadurch werden alle in myFilters vorgefundenen Filter angewendet; in diesem Fall nur filter.
package { import flash.display.Sprite; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; import flash.filters.GradientBevelFilter; public class GradientBevelFilterExample extends Sprite { private var bgColor:uint = 0xCCCCCC; private var size:uint = 80; private var offset:uint = 50; private var distance:Number = 5; private var angleInDegrees:Number = 225; // opposite 45 degrees private var colors:Array = [0xFFFFFF, 0xCCCCCC, 0x000000]; private var alphas:Array = [1, 0, 1]; private var ratios:Array = [0, 128, 255]; private var blurX:Number = 8; private var blurY:Number = 8; private var strength:Number = 2; private var quality:Number = BitmapFilterQuality.HIGH private var type:String = BitmapFilterType.INNER; private var knockout:Boolean = true; public function GradientBevelFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { return new GradientBevelFilter(distance, angleInDegrees, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
GradientBevelFilter.ratiosflash.display.BitmapData.applyFilter()BevelFilterflash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapGradientBevelFilter Initialisiert den Filter mit den angegebenen Parametern.distanceNumber4.0Der Offset-Abstand. Die zulässigen Werte liegen zwischen 0 und 8. angleNumber45Der Winkel in Grad. Die zulässigen Werte liegen zwischen 0 und 360. colorsArraynullEin Array mit den im Farbverlauf zu verwendenden RGB-Hexadezimalfarbwerten. Rot beispielsweise hat den Wert 0xFF0000, Blau den Wert 0x0000FF usw. alphasArraynullEin Array mit Alphatransparenzwerten für die entsprechenden Farben im colors-Array. Die zulässigen Werte der einzelnen Elemente des Arrays liegen zwischen 0 und 1. Mit dem Wert 0,25 wird beispielsweise ein Transparenzwert von 25 % festgelegt. ratiosArraynullEin Array mit Farbverteilungsverhältnissen. Die zulässigen Werte liegen zwischen 0 und 255. blurXNumber4.0Der Grad der horizontalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255. Eine Weichzeichnung mit einer Stärke von 1 oder weniger bedeutet, dass das Originalbild kopiert wird. Der Standardwert ist 4. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. blurYNumber4.0Der Grad der vertikalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255. Eine Weichzeichnung mit einer Stärke von 1 oder weniger bedeutet, dass das Originalbild kopiert wird. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. strengthNumber1Die Stärke des Abdrucks oder Auftragens. Je höher der Wert, desto mehr Farbe wird aufgetragen und desto stärker ist der Kontrast zwischen der Abschrägung und dem Hintergrund. Die zulässigen Werte liegen zwischen 0 und 255. Der Wert 0 bedeutet, dass der Filter nicht angewendet wird. qualityint1Die Qualität des Filters. Verwenden Sie die BitmapFilterQuality-Konstanten:
  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

Weitere Informationen finden Sie in der Beschreibung der quality-Eigenschaft.

typeStringinnerDie Platzierung des Abschrägungseffekts. Zulässige Werte sind die BitmapFilterType-Konstanten:
  • BitmapFilterType.OUTER – Abschrägung an der Außenkante des Objekts
  • BitmapFilterType.INNER – Abschrägung an der Innenkante des Objekts
  • BitmapFilterType.FULL – Abschrägung auf dem Objekt
knockoutBooleanfalseGibt an, ob ein Aussparungseffekt angewendet wird. Mit true wird eine transparente Füllung des Objekts definiert, die Hintergrundfarbe des Dokuments wird sichtbar.
Initialisiert den Filter mit den angegebenen Parametern.
GradientBevelFilter.qualityGradientBevelFilter.ratios
clone Gibt eine Kopie dieses Filterobjekts zurück.Eine neue GradientBevelFilter-Instanz mit allen Eigenschaften der ursprünglichen GradientBevelFilter-Instanz. flash.filters:BitmapFilter Gibt eine Kopie dieses Filterobjekts zurück. alphas Ein Array mit Alphatransparenzwerten für die entsprechenden Farben im colors-Array.ArrayDas Array ist leer, wenn gesetzt. TypeErrorTypeErrorEin Array von Alphawerten. Ein Array mit Alphatransparenzwerten für die entsprechenden Farben im colors-Array. Die zulässigen Werte der einzelnen Elemente des Arrays liegen zwischen 0 und 1. Mit dem Wert 0,25 wird beispielsweise ein Transparenzwert von 25 % festgelegt.

Die alphas-Eigenschaft kann nicht unmittelbar durch Änderung ihrer Werte geändert werden. Sie müssen vielmehr einen Verweis auf alphas erstellen, dort die Änderungen vornehmen und dann alphas auf den Verweis setzen.

Die Eigenschaften colors, alphas und ratios stehen miteinander in Zusammenhang. Das erste Element im colors-Array entspricht dem jeweils ersten Element im alphas- und im ratios-Array usw.

GradientBevelFilter.colorsGradientBevelFilter.ratios
angle Der Winkel in Grad.Number Der Winkel in Grad. Die zulässigen Werte liegen zwischen 0 und 360. Der Standardwert ist 45.

Dieser Wert stellt den Winkel einer imaginären, das Objekt beleuchtenden Lichtquelle dar. Der Wert des Winkels bestimmt den Winkel, in dem die Farben des Farbverlaufs auf das Objekt angewendet werden: An welcher Stelle die Glanzlicht-Effekte und Schatten dargestellt bzw. die erste Farbe im Array angezeigt wird. Die Farben werden dann in der Reihenfolge ihrer Anordnung im Array angewendet.

GradientBevelFilter.ratios
blurX Der Grad der horizontalen Weichzeichnung.Number Der Grad der horizontalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255. Eine Weichzeichnung mit einer Stärke von 1 oder weniger bedeutet, dass das Originalbild kopiert wird. Der Standardwert ist 4. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. blurY Der Grad der vertikalen Weichzeichnung.Number Der Grad der vertikalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255. Eine Weichzeichnung mit einer Stärke von 1 oder weniger bedeutet, dass das Originalbild kopiert wird. Der Standardwert ist 4. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. colors Ein Array mit den im Farbverlauf zu verwendenden RGB-Hexadezimalfarbwerten.ArrayDas Array ist leer, wenn gesetzt. TypeErrorTypeErrorEin Array von hexadezimalen RGB-Farbwerten. Ein Array mit den im Farbverlauf zu verwendenden RGB-Hexadezimalfarbwerten. Rot beispielsweise hat den Wert 0xFF0000, Blau den Wert 0x0000FF usw.

Die colors-Eigenschaft kann nicht direkt durch Bearbeiten der entsprechenden Werte geändert werden. Sie müssen vielmehr einen Verweis auf colors erstellen, dort die Änderungen vornehmen und dann colors auf den Verweis setzen.

Die Eigenschaften colors, alphas und ratios stehen miteinander in Zusammenhang. Das erste Element im colors-Array entspricht dem jeweils ersten Element im alphas- und im ratios-Array usw.

GradientBevelFilter.alphasGradientBevelFilter.ratios
distance Der Offset-Abstand.Number Der Offset-Abstand. Die zulässigen Werte liegen zwischen 0 und 8. Der Standardwert ist 4.0. knockout Gibt an, ob für das Objekt ein Aussparungseffekt definiert wurde.Boolean Gibt an, ob für das Objekt ein Aussparungseffekt definiert wurde. Mit einem Aussparungseffekt wird eine transparente Füllung des Objekts definiert, die Hintergrundfarbe des Dokuments wird sichtbar. Der Wert true gibt an, dass ein Aussparungseffekt angewendet werden soll. Der Standardwert lautet false (kein Aussparungseffekt). quality Gibt an, wie oft der Filter angewendet werden soll.int Gibt an, wie oft der Filter angewendet werden soll. Der Standardwert lautet BitmapFilterQuality.LOW, was einer einmaligen Anwendung des Filters entspricht. Mit dem Wert BitmapFilterQuality.MEDIUM wird der Filter zweimal angewendet und mit dem Wert BitmapFilterQuality.HIGH dreimal. Filter mit niedrigen Werten werden schneller dargestellt.

Bei den meisten Anwendungen genügt die Angabe der niedrigen, mittleren oder hohen Qualität für quality. Sie können zwar Werte bis 15 angeben, um unterschiedliche Effekte zu erzielen, höhere Werte führen jedoch auch zu einer langsameren Darstellung. Anstatt also den Wert von quality zu erhöhen, können Sie einen ähnlichen Effekt mit gleichzeitig schnellerer Darstellung erzielen, indem Sie einfach die Eigenschaftswerte von blurX und blurY erhöhen.

BitmapFilterQualityGradientBevelFilter.ratios
ratios Ein Array mit Farbverteilungsverhältnissen für die entsprechenden Farben im colors-Array.ArrayDas Array ist leer, wenn gesetzt. TypeErrorTypeError Ein Array mit Farbverteilungsverhältnissen für die entsprechenden Farben im colors-Array. Die zulässigen Werte der einzelnen Elemente des Arrays liegen zwischen 0 und 255.

Die ratios-Eigenschaft kann nicht unmittelbar durch Bearbeitung ihrer Werte geändert werden. Sie müssen vielmehr einen Verweis auf ratios erstellen, dort die Änderungen vornehmen und dann ratios auf den Verweis setzen.

Die Eigenschaften colors, alphas und ratios stehen miteinander in Zusammenhang. Das erste Element im colors-Array entspricht dem jeweils ersten Element im alphas- und im ratios-Array usw.

Um zu verstehen, wie die Farben in einem Abschrägungsfilter mit Farbverlauf verteilt werden, wählen Sie zunächst die Farben aus, die Sie für den Effekt verwenden möchten. Beachten Sie, dass eine einfacher Abschrägungsfilter eine Glanzlicht- und eine Schattenfarbe definiert, während bei einem Abschrägungsfilter mit Farbverlauf für die Glanzlichtfarbe und den Schatten je ein Farbverlauf festgelegt werden. Es wird davon ausgegangen, dass das Glanzlicht in der oberen linken Ecke und der Schatten in der rechten unteren Ecke angezeigt wird. Daraus ergibt sich eine mögliche Verwendung des Filters mit je vier Farben im Glanzlicht- und im Schattenbereich. Zusätzlich zum Glanzlicht und dem Schatten wird bei diesem Filter eine Basisfüllung verwendet, die an den Kanten zwischen Glanzlicht und Schatten angezeigt wird. Aus diesem Grund handelt es sich um insgesamt neun Farben und damit auch um neun Elemente im ratios-Array.

Wenn man nun einen solchen Farbverlauf als Abfolge von Bändern unterschiedlicher in einander verlaufender Farben ansieht, gibt jeder „ratio“-Wert die Position der entsprechenden Farbe als Radius des Farbverlaufs an, wobei 0 den äußersten Punkt und 255 den innersten Punkt des Farbverlaufs bezeichnet. Im Normalfall liegt der Mittelwert bei 128. Dies entspricht dem Wert der Basisfüllung. Um im Bild unten den Abschrägungseffekt zu erzielen, weisen Sie anhand des Beispiels mit den neun Farben folgende „ratio“-Werte zu:

  • Die ersten vier Farben liegen in einem Bereich zwischen 0 und 127. Der entsprechende Wert steigt jeweils an, sodass jeder Wert größer oder gleich dem vorherigen Wert ist. Dies ist die Kante der Abschrägung in Glanzlichtfarbe.
  • Die fünfte (mittlere) Farbe ist die Basisfüllung und hat den Wert 128. Der Pixelwert 128 legt die Basisfüllung fest, die außerhalb der Form angezeigt wird (und die abgeflachten Kanten umgibt), wenn als Typ „outer“ festgelegt wurde. Wurde als Typ dagegen „inner“ angegeben, befindet sich die Basisfüllung innerhalb der Form und deckt praktisch die objekteigene Füllung ab.
  • Die letzten vier Farben liegen im Bereich zwischen 129 und 255. Der entsprechende Wert steigt jeweils an, sodass jeder Wert größer oder gleich dem vorherigen Wert ist. Dies ist die Kante der Abschrägung in Schattenfarbe.

Wenn Sie an jeder Kante eine gleichmäßige Verteilung der Farbe erzielen möchten, müssen Sie eine ungerade Anzahl Farben angeben. Dabei definiert die mittlere Farbe die Basisfüllung. Verteilen Sie die Werte zwischen 0 und 127 oder zwischen 129 und 255 gleichmäßig auf die Farben, und ändern Sie dann die Werte, um die Breite der einzelnen Farbbänder im Farbverlauf anzupassen. Bei einem Farbverlauf mit neun Farben lautet ein Array möglicherweise [16, 32, 64, 96, 128, 160, 192, 224, 235]. Im folgenden Bild sind der Farbverlauf und die Abschrägung wie beschrieben dargestellt:

Beachten Sie hierbei, dass die Farben im Farbverlauf anhand der Werte der Eigenschaften blurX, blurY, strength und quality sowie der ratios-Werte verteilt werden.

GradientBevelFilter.alphasGradientBevelFilter.colorsflash.display.Graphics.beginGradientFill()
strength Die Stärke des Abdrucks oder Auftragens.Number Die Stärke des Abdrucks oder Auftragens. Je höher der Wert, desto mehr Farbe wird aufgetragen und desto stärker ist der Kontrast zwischen der Abschrägung und dem Hintergrund. Die zulässigen Werte liegen zwischen 0 und 255. Der Wert 0 bedeutet, dass der Filter nicht angewendet wird. Der Standardwert ist 1. GradientBevelFilter.ratiostype Die Platzierung des Abschrägungsffekts.String Die Platzierung des Abschrägungseffekts. Zulässige Werte sind die BitmapFilterType-Konstanten:
  • BitmapFilterType.OUTER – Abschrägung an der Außenkante des Objekts
  • BitmapFilterType.INNER – Abschrägung an der Innenkante des Objekts
  • BitmapFilterType.FULL – Abschrägung auf dem Objekt
ConvolutionFilter Die ConvolutionFilter-Klasse wendet einen Matrix-Convolution-Filtereffekt an.Wendet einen Matrix-Convolution-Filter an. flash.filters:BitmapFilter Die ConvolutionFilter-Klasse wendet einen Matrix-Convolution-Filtereffekt an. Bei einem Convolution-Filter wird durch Kombination der Pixel im Eingabebild mit den benachbarten Pixel ein neues Bild erstellt. Mithilfe von Convolution-Filtern können zahlreiche Bildeffekte erzielt werden, darunter Weich- oder Scharfzeichnung, Kantenerkennung, Prägung und Schliff. Sie können den Filter auf jedes Anzeigeobjekt anwenden (d. h. Objekte, die von der DisplayObject-Klasse erben), z. B. auf MovieClip-, SimpleButton-, TextField-, Video- sowie BitmapData-Objekte.

Verwenden Sie zum Erstellen eines Convolution-Filters die Syntax new ConvolutionFilter(). Die Verwendung von Filtern hängt davon ab, auf welches Objekt sie jeweils angewendet werden:

  • Um Filter auf Movieclips, Textfelder, Schaltflächen und Videosequenzen anzuwenden, verwenden Sie die Eigenschaft filters (von DisplayObject übernommen). Durch die Einstellung der filters-Eigenschaft wird das betroffene Objekt selbst nicht verändert, und Sie können den Filter wieder entfernen, indem Sie die filters-Eigenschaft löschen.
  • Um Filter auf BitmapData-Objekte anzuwenden, verwenden Sie die BitmapData.applyFilter()-Methode. Durch den Aufruf von applyFilter() bei einem BitmapData-Objekt wird das gefilterte Bild aus dem BitmapData-Quellobjekt und dem Filterobjekt generiert.

Wenn Sie einen Filter auf ein Anzeigeobjekt anwenden, wird der Wert der cacheAsBitmap-Eigenschaft des Objekts auf true gesetzt. Wenn Sie alle Filter entfernen, wird der ursprüngliche Wert von cacheAsBitmap wiederhergestellt.

Ein Filter wird nicht angewendet, wenn das Ergebnisbild die maximalen Abmessungen überschreitet. In AIR 1.5 und Flash Player 10 beträgt die maximale Höhe oder Breite 8.191 Pixel; die gesamte Pixelzahl darf 16.777.215 nicht übersteigen. (Wenn ein Bild also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite. Wenn Sie beispielsweise einen großen Movieclip mit aktiviertem Filter vergrößert darstellen, wird der Filter deaktiviert, sobald das Ergebnisbild die maximalen Abmessungen überschreitet.

Im folgenden Beispiel werden verschiedene Convolution-Filter auf eine Bilddatei angewendet. Der Filterkonstruktor ruft buildChild() viermal auf, um vier Instanzen des Bildes zu laden und anzuzeigen. Bei jedem Aufruf von buildChild() wird eine Funktion als Argument angenommen, mit der auf die erste Instanz kein Filter und auf jede folgende Instanz ein anderer Convolution-Filter angewendet wird.

Mit der Funktion buildChild() wird ein neues Loader-Objekt namens loader erstellt. Bei jedem Aufruf von buildChild() wird ein Ereignis-Listener an das Loader-Objekt angehängt. Auf diese Weise werden complete-Ereignisse erfasst, die von der an buildChild() übergebenen Funktion bearbeitet werden.

Die Funktionen applyBrightness(), applySharpness() und applyOutline() verwenden verschiedene Werte für das matrix-Array, um unterschiedliche ConvolutionFilter-Effekte zu erzielen.

Hinweis: Die besten Ergebnisse erzielen Sie mit einem Bild mit ca. 80 Pixel Breite. Der Name und Speicherort der Bilddatei sollten dem an die url-Eigenschaft übergebenen Wert entsprechen. Beispielsweise verweist der an url übergebene Wert auf eine Datei mit dem Namen „Image.jpg“, die sich im selben Ordner wie die SWF-Datei befindet.

package { import flash.display.DisplayObject; import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.filters.BitmapFilter; import flash.filters.ConvolutionFilter; import flash.net.URLRequest; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class ConvolutionFilterExample extends Sprite { private var size:uint = 140; private var url:String = "Image.jpg"; public function ConvolutionFilterExample() { buildChild(applyNothing); buildChild(applyBrightness); buildChild(applySharpness); buildChild(applyOutline); } private function buildChild(loadHandler:Function):void { var loader:Loader = new Loader(); loader.x = numChildren * size; loader.y = size; loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); if(loadHandler != null) { loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadHandler); } var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function applyNothing(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); applyLabel(child, "no filter"); } private function applyBrightness(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); var matrix:Array = [5, 5, 5, 5, 0, 5, 5, 5, 5]; applyFilter(child, matrix); applyLabel(child, "brightness"); } private function applySharpness(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); var matrix:Array = [0, -1, 0, -1, 20, -1, 0, -1, 0]; applyFilter(child, matrix); applyLabel(child, "sharpness"); } private function applyOutline(event:Event):void { var child:DisplayObject = DisplayObject(event.target.loader); var matrix:Array = [-30, 30, 0, -30, 30, 0, -30, 30, 0]; applyFilter(child, matrix); applyLabel(child, "outline"); } private function applyFilter(child:DisplayObject, matrix:Array):void { var matrixX:Number = 3; var matrixY:Number = 3; var divisor:Number = 9; var filter:BitmapFilter = new ConvolutionFilter(matrixX, matrixY, matrix, divisor); var filters:Array = new Array(); filters.push(filter); child.filters = filters; } private function applyLabel(child:DisplayObject, label:String):void { var tf:TextField = new TextField(); tf.x = child.x; tf.y = child.height; tf.autoSize = TextFieldAutoSize.LEFT; tf.text = label; addChild(tf); } private function ioErrorHandler(event:IOErrorEvent):void { trace("Unable to load image: " + url); } } }
flash.display.BitmapData.applyFilter()flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapmatrixConvolutionFilter Initialisiert eine neue ConvolutionFilter-Instanz mit den angegebenen Parametern.matrixXNumber0Die x-Dimension der Matrix (die Anzahl der Spalten in der Matrix). Der Standardwert ist 0. matrixYNumber0Die y-Dimension der Matrix (die Anzahl der Zeilen in der Matrix). Der Standardwert ist 0. matrixArraynullDas Array von für die Matrixtransformation verwendeten Werten. Die Anzahl der Elemente in diesem Array muss matrixX ~~ matrixY entsprechen. divisorNumber1.0Der während der Matrixtransformation verwendete Nenner. Der Standardwert ist 1. Ein Nenner in der Höhe der Summe aller Matrixwerte gleicht die allgemeine Farbintensität des Ergebnisses aus. Der Wert 0 wird ignoriert, stattdessen wird der Standardwert verwendet. biasNumber0.0Der Ausgleichswert, der dem Ergebnis der Matrixtransformation hinzugefügt wird. Der Standardwert ist 0. preserveAlphaBooleantrueDer Wert false gibt an, dass der Alphawert nicht übernommen wird, sondern dass der Convolution-Filter auf alle Kanäle, einschließlich des Alphakanals, angewendet wird. Bei true gilt die Convolution nur für die Farbkanäle. Der Standardwert ist true. clampBooleantrueFür Pixel außerhalb des Quellbilds gibt true an, dass das Eingabebild durch Duplizierung der Farbwerte an einem bestimmten Rand soweit wie nötig über seine Begrenzungen hinaus erweitert wird. Der Wert false gibt dagegen an, dass entsprechend den Eigenschaften color und alpha eine andere Farbe verwendet werden soll. Der Standardwert lautet true. coloruint0Der Hexadezimalwert der Farbe, durch die die Pixel außerhalb des Quellbilds ersetzt werden. alphaNumber0.0Der Alphawert der Ersatzfarbe. Initialisiert eine neue ConvolutionFilter-Instanz mit den angegebenen Parametern. clone Gibt eine Kopie dieses Filterobjekts zurück.BitmapFilter, eine neue ConvolutionFilter-Instanz mit allen Eigenschaften der ursprünglichen ConvolutionMatrixFilter-Instanz. flash.filters:BitmapFilter Gibt eine Kopie dieses Filterobjekts zurück. alpha Der Alphatransparenzwert der Ersatzfarbe.Number Der Alphatransparenzwert der Ersatzfarbe. Die zulässigen Werte liegen zwischen 0 und 1.0. Der Standardwert lautet 0. Mit dem Wert 0,25 wird beispielsweise ein Transparenzwert von 25 % festgelegt. bias Der Ausgleichswert, der dem Ergebnis der Matrixtransformation hinzugefügt wird.Number Der Ausgleichswert, der dem Ergebnis der Matrixtransformation hinzugefügt wird. Der Ausgleichswert erhöht den Farbwert jedes Kanals, sodass dunkle Farben heller erscheinen. Der Standardwert ist 0. clamp Gibt an, ob das Bild an einer bestimmten Position festgesetzt werden soll.Boolean Gibt an, ob das Bild an einer bestimmten Position festgesetzt werden soll. Für Pixel außerhalb des Quellbilds gibt true an, dass das Eingabebild durch Duplizierung der Farbwerte an jedem seiner Ränder Rand soweit wie nötig über seine Begrenzungen hinaus erweitert wird. Der Wert false gibt dagegen an, dass entsprechend den Eigenschaften color und alpha eine andere Farbe verwendet werden soll. Der Standardwert lautet true. Im folgenden Beispiel werden mithilfe der BitmapData-Klasse zwei Rahmen erstellt, von denen einer halb so groß ist wie der andere. Beim ersten Laden des Beispiels wird der größere Rahmen mithilfe von attachBitmap() innerhalb von mc gezeichnet. Wird mc angeklickt und die applyFilter()-Methode aufgerufen, so wird die largeBox-Instanz von BitmapData mit smallBox als Quellbitmap neu gezeichnet. Da applyFilter()smallBox über ein Rectangle zeichnet, dessen Breite und Höhe der Breite und Höhe von largeBox entsprechen, ist die Quellbitmap kleiner als der Zeichnungsbereich. Die clamp-Eigenschaft von ConvolutionFilter ist in diesem Fall auf false gesetzt und der Bereich, der von der Quellbitmap nicht abgedeckt wird, nämlich smallBox, ist einfarbig rot, wie in den Variablen clampColor und clampAlpha festgelegt. package { import flash.display.Sprite; import flash.display.BitmapData; import flash.filters.ConvolutionFilter; import flash.text.TextField; import flash.geom.Rectangle; import flash.geom.Point; public class ConvolutionClampExample extends Sprite { // Variables that affect clamping: var clamp:Boolean = false; var clampColor:Number = 0xFF0000; var clampAlpha:Number = 1; // For illustration, keep other ConvolutionFilter variables neutral: var bias:Number = 0; var preserveAlpha:Boolean = false; // Also, construct a neutral matrix var matrixCols:Number = 3; var matrixRows:Number = 3; var matrix:Array = [ 1,1,1, 1,1,1, 1,1,1 ]; var filter:ConvolutionFilter = new ConvolutionFilter(matrixCols, matrixRows, matrix, matrix.length, bias, preserveAlpha, clamp, clampColor, clampAlpha); var largeBoxWidth:Number = 100; var largeBoxHeight:Number = 100; var largeBox:BitmapData = new BitmapData(largeBoxWidth, largeBoxWidth, true, 0xCC00FF00); var smallBoxWidth:Number = largeBoxWidth / 2; var smallBoxHeight:Number = largeBoxHeight / 2; var smallBox:BitmapData = new BitmapData(smallBoxWidth, smallBoxWidth, true, 0xCC0000FF); var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth()); mc.attachBitmap(largeBox, this.getNextHighestDepth()); mc.onPress = function() { largeBox.applyFilter(smallBox, new Rectangle(0,0, largeBoxWidth, largeBoxHeight), new Point(0,0), filter); } } } color Der Hexadezimalwert der Farbe, durch die die Pixel außerhalb des Quellbilds ersetzt werden.uint Der Hexadezimalwert der Farbe, durch die die Pixel außerhalb des Quellbilds ersetzt werden. Hierbei handelt es sich um einen RGB-Wert ohne Alphakomponente. Der Standardwert ist 0. divisor Der während der Matrixtransformation verwendete Nenner.Number Der während der Matrixtransformation verwendete Nenner. Der Standardwert ist 1. Ein Nenner in der Höhe der Summe aller Matrixwerte gleicht die allgemeine Farbintensität des Ergebnisses aus. Der Wert 0 wird ignoriert, stattdessen wird der Standardwert verwendet. matrixX Die x-Dimension der Matrix (die Anzahl der Spalten in der Matrix).Number Die x-Dimension der Matrix (die Anzahl der Spalten in der Matrix). Der Standardwert ist 0. matrixY Die y-Dimension der Matrix (die Anzahl der Zeilen in der Matrix).Number Die y-Dimension der Matrix (die Anzahl der Zeilen in der Matrix). Der Standardwert ist 0. matrix Ein Array von für die Matrixtransformation verwendeten Werten.ArrayDas Array ist leer, wenn gesetzt. TypeErrorTypeError Ein Array von für die Matrixtransformation verwendeten Werten. Die Anzahl der Elemente in diesem Array muss matrixX ~~ matrixY entsprechen.

Dabei basiert eine Matrix-Convolution auf einer n-mal-m-Matrix, die beschreibt, wie ein bestimmter Pixelwert im Eingabebild mit den Werten der benachbarten Pixel kombiniert wird, um den Ergebniswert zu erzielen. Jedes Ergebnispixel wird durch Anwenden der Matrix auf den entsprechenden Wert des Quellpixels und der benachbarten Pixel festgelegt.

Bei einem 3 x 3-Matrix-Convolution-Filter wird für jeden einzelnen Farbkanal die folgende Formel angewendet:


	dst (x, y) = ((src (x-1, y-1) ~~ a0 + src(x, y-1) ~~ a1....
	                  src(x, y+1) ~~ a7 + src (x+1,y+1) ~~ a8) / divisor) + bias
	

Bestimmte Filterfunktionen werden schneller ausgeführt, wenn sie auf einem System mit einem SSE-fähigen Prozessor (Streaming SIMD Extensions) ausgeführt werden. Es folgen Kriterien für schnellere Convolution-Vorgänge:

  • Beim Filter muss es sich um einen 3x3-Filter handeln.
  • Alle Filterterme müssen Ganzzahlen zwischen -127 und +127 sein.
  • Die Summe aller Filterterme darf insgesamt nicht mehr als den absoluten Wert 127 ergeben.
  • Wenn ein Filterterm negativ ist, muss der Nenner zwischen 2,00001 und 256 liegen.
  • Wenn alle Filterterme positiv sind, muss der Nenner zwischen 1,1 und 256 liegen.
  • Bei dem Wert des Parameters „bias“ muss es sich um eine Ganzzahl handeln.

Hinweis: Wenn Sie den Konstruktor ohne Parameter zum Erstellen einer ConvolutionFilter-Instanz verwenden, hat die Reihenfolge, in der Sie den Matrixeigenschaften Werte zuweisen, Einfluss auf das Verhalten des Filters. Im folgenden Fall wird das Matrix-Array zugewiesen, während die Eigenschaften matrixX und matrixY noch auf 0 gesetzt sind (Standardwert):

public var myfilter:ConvolutionFilter = new ConvolutionFilter(); myfilter.matrix = [0, 0, 0, 0, 1, 0, 0, 0, 0]; myfilter.matrixX = 3; myfilter.matrixY = 3;

Im folgenden Fall wird das Matrix-Array zugewiesen, während die Eigenschaften matrixX und matrixY auf 3 gesetzt sind:

public var myfilter:ConvolutionFilter = new ConvolutionFilter(); myfilter.matrixX = 3; myfilter.matrixY = 3; myfilter.matrix = [0, 0, 0, 0, 1, 0, 0, 0, 0];
preserveAlpha Gibt an, ob der Alphakanal ohne Anwendung des Filtereffekts beibehalten wird oder ob der Convolution-Filter neben den Farbkanälen auch auf den Alphakanal angewendet wird.Boolean Gibt an, ob der Alphakanal ohne Anwendung des Filtereffekts beibehalten wird oder ob der Convolution-Filter neben den Farbkanälen auch auf den Alphakanal angewendet wird. Der Wert false gibt an, dass die Convolution auf alle Kanäle angewendet werden soll, auch auf den Alphakanal. Bei true gilt die Convolution nur für die Farbkanäle. Der Standardwert ist true.
GlowFilter Mit der GlowFilter-Klasse können Sie einen Glühen-Effekt auf Anzeigeobjekte anwenden.Ermöglicht das Hinzufügen eines Glühen-Effekts. flash.filters:BitmapFilter Mit der GlowFilter-Klasse können Sie einen Glühen-Effekt auf Anzeigeobjekte anwenden. Sie haben verschiedene Möglichkeiten für den beim Glühen verwendeten Stil, z. B. inneres oder äußeres Glühen oder den Aussparungsmodus. Der Glühen-Filter ähnelt einem Schlagschatten-Filter, dessen Eigenschaften distance und angle auf 0 (null) gesetzt sind. Sie können den Filter auf jedes Anzeigeobjekt anwenden (d. h. Objekte, die von der DisplayObject-Klasse erben), z. B. auf MovieClip-, SimpleButton-, TextField-, Video- sowie BitmapData-Objekte.

Die Verwendung von Filtern hängt davon ab, auf welches Objekt sie jeweils angewendet werden:

  • Um Filter auf Anzeigeobjekte anzuwenden, verwenden Sie die filters-Eigenschaft (von DisplayObject übernommen). Durch die Einstellung der filters-Eigenschaft wird das betroffene Objekt selbst nicht verändert, und Sie können den Filter wieder entfernen, indem Sie die filters-Eigenschaft löschen.
  • Um Filter auf BitmapData-Objekte anzuwenden, verwenden Sie die BitmapData.applyFilter()-Methode. Durch den Aufruf von applyFilter() bei einem BitmapData-Objekt wird das gefilterte Bild aus dem BitmapData-Quellobjekt und dem Filterobjekt generiert.

Wenn Sie einen Filter auf ein Anzeigeobjekt anwenden, wird die cacheAsBitmap-Eigenschaft des Anzeigeobjekts auf true gesetzt. Wenn Sie alle Filter entfernen, wird der ursprüngliche Wert von cacheAsBitmap wiederhergestellt.

Dieser Filter unterstützt Bühnenskalierung. Allgemeine Skalierung, Drehung und Neigung werden dagegen nicht unterstützt. Wenn das Objekt selbst skaliert wird (also die Eigenschaften scaleX und scaleY ungleich 1,0 sind), wird der Filtereffekt nicht skaliert. Er wird nur dann skaliert, wenn die Bühne vergrößert dargestellt wird.

Ein Filter wird nicht angewendet, wenn das Ergebnisbild die maximalen Abmessungen überschreitet. In AIR 1.5 und Flash Player 10 beträgt die maximale Höhe oder Breite 8.191 Pixel; die gesamte Pixelzahl darf 16.777.215 nicht übersteigen. (Wenn ein Bild also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite. Wenn Sie beispielsweise einen großen Movieclip mit aktiviertem Filter vergrößert darstellen, wird der Filter deaktiviert, sobald das Ergebnisbild die maximalen Abmessungen überschreitet.

Im folgenden Beispiel wird ein Quadrat gezeichnet, auf das ein Weichzeichnen-Filter angewendet wird. Der allgemeine Workflow dieses Beispiels lautet wie folgt:
  1. Importieren Sie die erforderlichen Klassen.
  2. Deklarieren Sie drei Eigenschaften für die draw()-Methode. Diese Methode verwendet Methoden der Graphics-Klasse, auf die über die Eigenschaft graphics der Sprite-Klasse zugegriffen wird, um ein orangefarbenes Quadrat zu zeichnen.
  3. Erstellen Sie die Konstruktorfunktion, die Folgendes bewirkt:
    • Ruft die draw-Funktion auf, um ein Rechteck zu erstellen.
    • Erstellt ein BitmapFilter-Objekt glowFilter und weist ihm den Rückgabewert aus der getBitmapFilter()-Funktion zu.
    • Weist das Wertearray aus dem glowFilter-Objekt der filters-Eigenschaft des Stammanzeigeobjekts zu. In diesem Fall übernehmen alle untergeordneten Anzeigeobjekte des Stammanzeigeobjekts die glowfilter-Eigenschaften. Das Rechteck, das in der draw()-Funktion erstellt wird, zeigt also die Eigenschaften des Glühen-Filters an.
package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.GlowFilter; public class GlowFilterExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 80; private var offset:uint = 50; public function GlowFilterExample() { //draw the rectangle using the draw() function below draw(); //assign the values from getBitmapFilter function below //to a BitmapFilter object "glowFilter" var glowFilter:BitmapFilter = getBitmapFilter(); //populate the filters property of the root display object with the array of values //from the glowFilter object. filters = [ glowFilter ]; } private function getBitmapFilter():BitmapFilter { var color:Number = 0x33CCFF; var alpha:Number = 0.8; var blurX:Number = 35; var blurY:Number = 35; var strength:Number = 2; var inner:Boolean = false; var knockout:Boolean = false; var quality:Number = BitmapFilterQuality.HIGH; return new GlowFilter(color, alpha, blurX, blurY, strength, quality, inner, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
flash.display.BitmapData.applyFilter()flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapflash.display.DisplayObject.scaleXflash.display.DisplayObject.scaleYflash.filters.DropShadowFilter.distanceflash.filters.DropShadowFilter.angleGlowFilter Initialisiert eine neue GlowFilter-Instanz mit den angegebenen Parametern.coloruint0xFF0000Die Farbe des Glühen-Effekts im hexadezimalen Format 0xRRGGBB. Der Standardwert lautet 0xFF0000. alphaNumber1.0Der Alphatransparenzwert der Farbe. Die zulässigen Werte liegen zwischen 0 und 1. Mit dem Wert 0,25 wird beispielsweise ein Transparenzwert von 25 % festgelegt. blurXNumber6.0Der Grad der horizontalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255 (Gleitkomma). Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. blurYNumber6.0Der Grad der vertikalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255 (Gleitkomma). Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. strengthNumber2Die Stärke des Abdrucks oder Auftragens. Je höher der Wert, desto mehr Farbe wird aufgetragen und desto stärker ist der Kontrast zwischen dem Glühen und dem Hintergrund. Die zulässigen Werte liegen zwischen 0 und 255. qualityint1Gibt an, wie oft der Filter angewendet werden soll. Verwenden Sie die BitmapFilterQuality-Konstanten:
  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

Weitere Informationen finden Sie in der Beschreibung der quality-Eigenschaft.

innerBooleanfalseGibt an, ob es sich um ein inneres Glühen handelt. Der Wert true gibt ein inneres Glühen an. Der Wert false gibt ein äußeres Glühen an, d. h. ein Glühen um die äußeren Ränder des Objekts. knockoutBooleanfalseGibt an, ob für das Objekt ein Aussparungseffekt definiert wurde. Mit true wird eine transparente Füllung des Objekts definiert, die Hintergrundfarbe des Dokuments wird sichtbar.
Initialisiert eine neue GlowFilter-Instanz mit den angegebenen Parametern.
BitmapFilterQualityGlowFilter.quality
clone Gibt eine Kopie dieses Filterobjekts zurück.Eine neue GlowFilter-Instanz mit allen Eigenschaften der ursprünglichen GlowFilter-Instanz. flash.filters:BitmapFilter Gibt eine Kopie dieses Filterobjekts zurück. alpha Der Alphatransparenzwert der Farbe.Number Der Alphatransparenzwert der Farbe. Die zulässigen Werte liegen zwischen 0 und 1. Mit dem Wert 0,25 wird beispielsweise ein Transparenzwert von 25 % festgelegt. Der Standardwert ist 1. blurX Der Grad der horizontalen Weichzeichnung.Number Der Grad der horizontalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255 (Gleitkomma). Der Standardwert ist 6. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. blurY Der Grad der vertikalen Weichzeichnung.Number Der Grad der vertikalen Weichzeichnung. Die zulässigen Werte liegen zwischen 0 und 255 (Gleitkomma). Der Standardwert ist 6. Zweierpotenzen (z. B. 2, 4, 8, 16 und 32) sind optimiert und ergeben eine schnellere Anzeige als andere Werte. color Die Farbe des Glühen-Effekts.uint Die Farbe des Glühen-Effekts. Die zulässigen Werte werden im Hexadezimalformat 0xRRGGBB angegeben. Der Standardwert lautet 0xFF0000. inner Gibt an, ob es sich um ein inneres Glühen handelt.Boolean Gibt an, ob es sich um ein inneres Glühen handelt. Der Wert true gibt ein inneres Glühen an. Der Standardwert lautet false, gibt also ein äußeres Glühen an, d. h. ein Glühen um die äußeren Ränder des Objekts. knockout Gibt an, ob für das Objekt ein Aussparungseffekt definiert wurde.Boolean Gibt an, ob für das Objekt ein Aussparungseffekt definiert wurde. Mit true wird eine transparente Füllung des Objekts definiert, die Hintergrundfarbe des Dokuments wird sichtbar. Der Standardwert lautet false (keine Aussparung). quality Gibt an, wie oft der Filter angewendet werden soll.int Gibt an, wie oft der Filter angewendet werden soll. Der Standardwert lautet BitmapFilterQuality.LOW, was einer einmaligen Anwendung des Filters entspricht. Mit dem Wert BitmapFilterQuality.MEDIUM wird der Filter zweimal angewendet und mit dem Wert BitmapFilterQuality.HIGH dreimal. Filter mit niedrigen Werten werden schneller dargestellt.

Bei den meisten Anwendungen genügt die Angabe der niedrigen, mittleren oder hohen Qualität für quality. Sie können zwar Werte bis 15 angeben, um unterschiedliche Effekte zu erzielen, höhere Werte führen jedoch auch zu einer langsameren Darstellung. Anstatt also den Wert von quality zu erhöhen, können Sie einen ähnlichen Effekt mit gleichzeitig schnellerer Darstellung erzielen, indem Sie einfach die Eigenschaftswerte von blurX und blurY erhöhen.

flash.filters.BitmapFilterQuality
strength Die Stärke des Abdrucks oder Auftragens.Number Die Stärke des Abdrucks oder Auftragens. Je höher der Wert, desto mehr Farbe wird aufgetragen und desto stärker ist der Kontrast zwischen dem Glühen und dem Hintergrund. Die zulässigen Werte liegen zwischen 0 und 255. Der Standardwert ist 2.
ShaderFilter Die ShaderFilter-Klasse wendet einen Filter an, indem Sie einen Shader auf ein gefiltertes Objekt ausführt.flash.filters:BitmapFilter Die ShaderFilter-Klasse wendet einen Filter an, indem Sie einen Shader auf ein gefiltertes Objekt ausführt. Das gefilterte Objekt wird als Eingabe für den Shader verwendet und die Shaderausgabe wird zum Filterergebnis.

Verwenden Sie zum Erstellen eines neuen Filters den newShaderFilter()-Konstruktor. Die Verwendung von Filtern hängt davon ab, auf welches Objekt sie jeweils angewendet werden:

  • Um Filter auf Movieclips, Textfelder, Schaltflächen und Videosequenzen anzuwenden, verwenden Sie die Eigenschaft filters (von DisplayObject übernommen). Durch die Einstellung der filters-Eigenschaft wird das betroffene Objekt selbst nicht verändert, und Sie können den Filter wieder entfernen, indem Sie die filters-Eigenschaft löschen.
  • Um Filter auf BitmapData-Objekte anzuwenden, verwenden Sie die BitmapData.applyFilter()-Methode. Durch den Aufruf von applyFilter() bei einem BitmapData-Objekt wird das gefilterte Bild aus dem BitmapData-Quellobjekt und dem Filterobjekt generiert.

Wenn Sie einen Filter auf ein Anzeigeobjekt anwenden, wird der Wert der cacheAsBitmap-Eigenschaft des Objekts auf true gesetzt. Wenn Sie alle Filter entfernen, wird der ursprüngliche Wert von cacheAsBitmap wiederhergestellt.

Dieser Filter unterstützt Bühnenskalierung. Allgemeine Skalierung, Drehung und Neigung werden dagegen nicht unterstützt. Wenn das Objekt selbst skaliert wird (also die Eigenschaften scaleX und scaleY ungleich 100 % sind), wird der Filtereffekt nicht skaliert. Er wird nur skaliert, wenn die Bühne vergrößert dargestellt wird.

Ein Filter wird nicht angewendet, wenn das Ergebnisbild die maximalen Abmessungen überschreitet. In AIR 1.5 und Flash Player 10 beträgt die maximale Höhe oder Breite 8.191 Pixel; die gesamte Pixelzahl darf 16.777.215 nicht übersteigen. (Wenn ein Bild also 8.191 Pixel breit ist, darf es nur 2.048 Pixel hoch sein.) In Flash Player 9 und niedriger und AIR 1.1 und niedriger liegt die Grenze bei je 2.880 Pixel Höhe und Breite. Wenn Sie beispielsweise einen großen Movieclip mit aktiviertem Filter vergrößert darstellen, wird der Filter deaktiviert, sobald das Ergebnisbild die maximalen Abmessungen überschreitet.

Um die Shader-Instanz festzulegen, die mit dem Filter verwendet werden soll, übergeben Sie die Shader-Instanz als Argument an den ShaderFilter()-Konstruktor oder setzen Sie sie als Wert der shader-Eigenschaft.

Damit sich die Shaderausgabe über die Grenzen des gefilterten Objekts erstrecken kann, verwenden Sie die Eigenschaften leftExtension, rightExtension, topExtension und bottomExtension.

Im folgenden Beispiel wird ein Shader geladen und als shader-Eigenschaft eines ShaderFilters verwendet. Der Code zeichnet einen Kreis in einer Sprite-Instanz und fügt sie der Bühne hinzu. Beim Laden des Shaders wird der Shaderfilter auf das Sprite angewendet.

Beachten Sie, dass im Beispiel davon ausgegangen wird, dass im selben Ordner wie dem Ausgabeordner der Anwendung eine Shaderbytecodedatei namens „gradient.pbj“ vorhanden ist.

// // Source code for the shader: // <languageVersion : 1.0;> kernel RedGradientFilter < namespace: "Adobe::Example"; vendor: "Adobe examples"; version: 1; description: "Applies a gradient across the red channel of the input image."; > { input image4 src; output pixel4 dst; parameter float width < description: "The width of the image to which the shader is applied."; minValue: 0.0; >; void evaluatePixel() { pixel4 temp = sampleNearest(src, outCoord()); temp.r = 1.0 - (outCoord().x * (1.0 / width)); dst = temp; } } // // ActionScript source code: // package { import flash.display.Shader; import flash.display.Sprite; import flash.events.Event; import flash.filters.ShaderFilter; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; public class ShaderFilterExample extends Sprite { private var loader:URLLoader; private var s:Sprite; public function ShaderFilterExample() { loader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.BINARY; loader.addEventListener(Event.COMPLETE, loadCompleteHandler); loader.load(new URLRequest("gradient.pbj")); s = new Sprite(); s.graphics.beginFill(0x009900); s.graphics.drawCircle(100, 100, 100); addChild(s); } private function loadCompleteHandler(event:Event):void { var shader:Shader = new Shader(loader.data); shader.data.width.value = [s.width]; var gradientFilter:ShaderFilter = new ShaderFilter(shader); s.filters = [gradientFilter]; } } }
flash.display.DisplayObject.filtersflash.display.DisplayObject.cacheAsBitmapflash.display.BitmapData.applyFilter()flash.display.ShaderShaderFilter Erstellt einen neuen Shaderfilter.shaderflash.display:ShadernullDer für diesen Filter zu verwendende Shader. Weitere Informationen und Einschränkungen zum Shader finden Sie in der Beschreibung der shader-Eigenschaft. Erstellt einen neuen Shaderfilter. shaderbottomExtension Die Erweiterung an der unteren Seite des Zielobjekts in Pixel.int0 Die Erweiterung an der unteren Seite des Zielobjekts in Pixel.

Die Erweiterung ist der Bereich außerhalb der Grenzen des Zielobjekts, das während der Ausführung an den Shader übergeben wird. Bei der Ausführung berechnet Flash Player oder AIR die normalen Grenzen eines Movieclips und erweitert sie auf Basis der Werte leftExtension, rightExtension, topExtension und bottomExtension.

leftExtension Die Erweiterung an der linken Seite des Zielobjekts in Pixel.int0 Die Erweiterung an der linken Seite des Zielobjekts in Pixel.

Die Erweiterung ist der Bereich außerhalb der Grenzen des Zielobjekts, das während der Ausführung an den Shader übergeben wird. Bei der Ausführung berechnet Flash Player oder AIR die normalen Grenzen eines Movieclips und erweitert sie auf Basis der Werte leftExtension, rightExtension, topExtension und bottomExtension.

rightExtension Die Erweiterung an der rechten Seite des Zielobjekts in Pixel.int0 Die Erweiterung an der rechten Seite des Zielobjekts in Pixel.

Die Erweiterung ist der Bereich außerhalb der Grenzen des Zielobjekts, das während der Ausführung an den Shader übergeben wird. Bei der Ausführung berechnet Flash Player oder AIR die normalen Grenzen eines Movieclips und erweitert sie auf Basis der Werte leftExtension, rightExtension, topExtension und bottomExtension.

shader Der für diesen Filter zu verwendende Shader.flash.display:Shader Der für diesen Filter zu verwendende Shader.

Der Shader, der der shader-Eigenschaft zugewiesen ist, muss mindestens zwei image4-Eingaben festlegen. Die Eingabe muss nicht im Code über die input-Eigenschaft des verknüpften ShaderInput-Objekts festgelegt werden. Stattdessen wird das Objekt, auf das der Filter angewendet wird, automatisch als erste Eingabe verwendet (die Eingabe mit index = 0). Ein als Filter verwendeter Shader kann mehr als eine Eingabe festlegen. Diese zusätzlichen Eingaben werden durch das Setzen der input-Eigenschaft der ShaderInput-Instanz festgelegt.

Wenn Sie dieser Eigenschaft eine Shader-Instanz zuweisen, wird der Shader intern kopiert und der Zeichenfüllvorgang verwendet anstatt eines Verweises auf den ursprünglichen Shader die interne Kopie. Änderungen am Shader, beispielsweise die Änderung eines Parameterwerts, einer Eingabe oder des Bytecodes, werden nicht auf die Shaderkopie angewendet, die für den Filter verwendet wird. Damit die Änderungen des Shaders bei der Filterausgabe berücksichtigt werden, müssen Sie der shader-Eigenschaft die Shader-Instanz erneut zuweisen. Wie bei allen Filtern müssen Sie der filters-Eigenschaft des Anzeigeobjekts auch die ShaderFilter-Instanz erneut zuweisen, damit die Filteränderungen angewendet werden.

topExtension Die Erweiterung an der oberen Seite des Zielobjekts in Pixeln.int0 Die Erweiterung an der oberen Seite des Zielobjekts in Pixeln.

Die Erweiterung ist der Bereich außerhalb der Grenzen des Zielobjekts, das während der Ausführung an den Shader übergeben wird. Bei der Ausführung berechnet Flash Player oder AIR die normalen Grenzen eines Movieclips und erweitert sie auf Basis der Werte leftExtension, rightExtension, topExtension und bottomExtension.