Paket | flash.filters |
Klasse | public final class DisplacementMapFilter |
Vererbung | DisplacementMapFilter BitmapFilter Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
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 derfilters
-Eigenschaft wird das betroffene Objekt selbst nicht verändert, und Sie können den Filter wieder entfernen, indem Sie diefilters
-Eigenschaft löschen. - Um Filter auf BitmapData-Objekte anzuwenden, verwenden Sie die
BitmapData.applyFilter()
-Methode. Beim Aufrufen vonapplyFilter()
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.
Verwandte API-Elemente
flash.display.DisplayObject.filters
flash.display.DisplayObject.cacheAsBitmap
Eigenschaft | Definiert von | ||
---|---|---|---|
alpha : Number
Gibt an, welcher Alphatransparenzwert für Verschiebungen außerhalb des gültigen Bereichs verwendet werden soll. | DisplacementMapFilter | ||
color : uint
Gibt an, welche Farbe für Verschiebungen außerhalb des gültigen Bereichs verwendet werden soll. | DisplacementMapFilter | ||
componentX : uint
Gibt den Farbkanal im Matrixbild an, mit dem das x-Ergebnis verschoben wird. | DisplacementMapFilter | ||
componentY : uint
Gibt den Farbkanal im Matrixbild an, mit dem das y-Ergebnis verschoben wird. | DisplacementMapFilter | ||
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
mapBitmap : BitmapData
Ein BitmapData-Objekt mit den Daten der Verschiebungsmatrix. | DisplacementMapFilter | ||
mapPoint : Point
Ein Wert mit dem Offset der linken oberen Ecke des Zielanzeigeobjekts zur linken oberen Ecke des Matrixbilds. | DisplacementMapFilter | ||
mode : String
Der Filtermodus. | DisplacementMapFilter | ||
scaleX : Number
Der Multiplikator, anhand dessen das auf der Matrixberechnung beruhende Ergebnis der x-Verschiebung skaliert wird. | DisplacementMapFilter | ||
scaleY : Number
Der Multiplikator, anhand dessen das auf der Matrixberechnung beruhende Ergebnis der y-Verschiebung skaliert wird. | DisplacementMapFilter |
Methode | Definiert von | ||
---|---|---|---|
DisplacementMapFilter(mapBitmap:BitmapData = null, mapPoint:Point = null, componentX:uint = 0, componentY:uint = 0, scaleX:Number = 0.0, scaleY:Number = 0.0, mode:String = "wrap", color:uint = 0, alpha:Number = 0.0)
Initialisiert eine neue DisplacementMapFilter-Instanz mit den angegebenen Parametern. | DisplacementMapFilter | ||
[override]
Gibt eine Kopie dieses Filterobjekts zurück. | DisplacementMapFilter | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
alpha | Eigenschaft |
alpha:Number
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
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.
Implementierung
public function get alpha():Number
public function set alpha(value:Number):void
color | Eigenschaft |
color:uint
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
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.
Implementierung
public function get color():uint
public function set color(value:uint):void
componentX | Eigenschaft |
componentX:uint
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
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
Implementierung
public function get componentX():uint
public function set componentX(value:uint):void
Verwandte API-Elemente
componentY | Eigenschaft |
componentY:uint
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
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
Implementierung
public function get componentY():uint
public function set componentY(value:uint):void
Verwandte API-Elemente
mapBitmap | Eigenschaft |
mapBitmap:BitmapData
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Ein BitmapData-Objekt mit den Daten der Verschiebungsmatrix.
Implementierung
public function get mapBitmap():BitmapData
public function set mapBitmap(value:BitmapData):void
Auslöser
TypeError — Das BitmapData-Objekt ist leer (null), wenn gesetzt.
|
Verwandte API-Elemente
mapPoint | Eigenschaft |
mapPoint:Point
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Ein Wert mit dem Offset der linken oberen Ecke des Zielanzeigeobjekts zur linken oberen Ecke des Matrixbilds.
Implementierung
public function get mapPoint():Point
public function set mapPoint(value:Point):void
Auslöser
TypeError — Das Point-Objekt ist leer (null), wenn gesetzt.
|
Verwandte API-Elemente
mode | Eigenschaft |
mode:String
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
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 Eigenschaftencolor
undalpha
ersetzt.
Implementierung
public function get mode():String
public function set mode(value:String):void
Auslöser
TypeError — Der String ist leer, wenn gesetzt.
| |
ArgumentError — Der String für den Filtermodus gehört nicht zu den gültigen Typen.
|
Verwandte API-Elemente
scaleX | Eigenschaft |
scaleY | Eigenschaft |
DisplacementMapFilter | () | Konstruktor |
public function DisplacementMapFilter(mapBitmap:BitmapData = null, mapPoint:Point = null, componentX:uint = 0, componentY:uint = 0, scaleX:Number = 0.0, scaleY:Number = 0.0, mode:String = "wrap", color:uint = 0, alpha:Number = 0.0)
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Initialisiert eine neue DisplacementMapFilter-Instanz mit den angegebenen Parametern.
ParametermapBitmap:BitmapData (default = null ) — Ein BitmapData-Objekt mit den Daten der Verschiebungsmatrix.
| |
mapPoint:Point (default = null ) — Ein Wert mit dem Offset der linken oberen Ecke des Zielanzeigeobjekts zur linken oberen Ecke des Matrixbilds.
| |
componentX:uint (default = 0 ) — Gibt den Farbkanal im Matrixbild an, mit dem das x-Ergebnis verschoben wird. Zulässige Werte sind die BitmapDataChannel-Konstanten.
| |
componentY:uint (default = 0 ) — Gibt den Farbkanal im Matrixbild an, mit dem das y-Ergebnis verschoben wird. Zulässige Werte sind die BitmapDataChannel-Konstanten.
| |
scaleX:Number (default = 0.0 ) — Der Multiplikator, anhand dessen das auf der Matrixberechnung beruhende Ergebnis der x-Verschiebung skaliert wird.
| |
scaleY:Number (default = 0.0 ) — Der Multiplikator, mit dem das auf der Matrixberechnung beruhende Ergebnis der y-Verschiebung skaliert wird.
| |
mode:String (default = "wrap ") — Der Filtermodus. Zulässige Werte sind die DisplacementMapFilterMode-Konstanten.
| |
color:uint (default = 0 ) — 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. Verwenden Sie diesen Parameter, wenn mode auf DisplacementMapFilterMode.COLOR gesetzt wurde.
| |
alpha:Number (default = 0.0 ) — Gibt 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.
|
Verwandte API-Elemente
clone | () | Methode |
override public function clone():BitmapFilter
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0, Flash Player 9 |
Gibt eine Kopie dieses Filterobjekts zurück.
RückgabewerteBitmapFilter — Eine neue DisplacementMapFilter-Instanz mit allen Eigenschaften der ursprünglichen Instanz.
|
- Die Klasse definiert Variablen für die Hintergrundfarbe, die Textfeldbezeichnung sowie die Größe und den Versatz, die in verschiedenen Funktionen verwendet werden.
- 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 beigraphics
um eine Eigenschaft des DisplacementMapFilterExample-Objekts handelt, mit dem die Klasse Sprite erweitert wird. - Die Konstruktorfunktion ruft die Methode
createLabel()
auf, mit der ein Textfeld erstellt wird. In diesem Feld wird der Wert vonlabelText
angezeigt und in die Anzeigeliste aufgenommen. - 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 Variablenfilter
zu. - Übergibt
filter
an diefilters
-Eigenschaft des DisplacementFilterExample-Objekts (die Hauptklasse).
- Erstellt für das Filterobjekt eine Variable mit dem Namen
- Mit der Methode
getBitmapFilter()
wird ein BitmapData-Objekt mit dem NamenmapBitmap
erstellt, dem das Ergebnis der MethodecreateBitmapData()
zugewiesen wird. Die MethodemapBitmap
definiert zusammen mit anderen Variablen einen neuen Verschiebungsmatrixfilter. - Die Methode
createBitmapData()
erstellt ein neues BitmapData-Objekt, das auf dem aktuellen Inhalt des DisplacementMapFilterExample-Objekts basiert. Auf der Basis vonbitmapData
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); } } }
Tue Jun 12 2018, 10:04 AM Z