パッケージ | flash.filters |
クラス | public final class DisplacementMapFilter |
継承 | DisplacementMapFilter BitmapFilter Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
フィルターの使用方法は、フィルターの適用先オブジェクトによって異なります。
- 表示オブジェクトにフィルターを適用する場合は、表示オブジェクトの
filters
プロパティを使用します。オブジェクトのfilters
プロパティを設定しても、オブジェクトは変更されません。filters
プロパティをクリアすることにより、フィルターを取り消すことができます。 - BitmapData オブジェクトにフィルターを適用するには、
BitmapData.applyFilter()
メソッドを使用します。BitmapData オブジェクトでapplyFilter()
を呼び出すことによって、ソース BitmapData オブジェクトとフィルターオブジェクトが取得され、フィルターを適用したイメージが生成されます。
表示オブジェクトにフィルターを適用すると、表示オブジェクトの cacheAsBitmap
プロパティの値が true
に設定されます。すべてのフィルターをクリアすると、cacheAsBitmap
の元の値が復元されます。
このフィルターでは次の式を使用します。
dstPixel[x, y] = srcPixel[x + ((componentX(x, y) - 128) * scaleX) / 256, y + ((componentY(x, y) - 128) *scaleY) / 256)
componentX(x, y)
は、componentX
プロパティのカラー値を mapBitmap
プロパティ((x - mapPoint.x ,y - mapPoint.y)
)から取得します。
フィルターで使用するマップイメージは、ステージの拡大 / 縮小率に一致するように拡大 / 縮小されます。オブジェクト自体を拡大 / 縮小する場合には拡大 / 縮小されません。
このフィルターはステージの拡大 / 縮小に対応していますが、通常の拡大 / 縮小、回転、傾斜には対応していません。オブジェクト自体を拡大 / 縮小する場合(scaleX
と scaleY
プロパティが 1.0 以外に設定されている場合)、フィルター効果は拡大 / 縮小されません。フィルターが拡大 / 縮小されるのは、ユーザーがステージをズームインする場合のみです。
関連する API エレメント
flash.display.DisplayObject.filters
flash.display.DisplayObject.cacheAsBitmap
プロパティ | 定義元 | ||
---|---|---|---|
alpha : Number
範囲外置き換えの場合に使用するアルファ透明度値を指定します。 | DisplacementMapFilter | ||
color : uint
範囲外置き換えの場合に使用する色を指定します。 | DisplacementMapFilter | ||
componentX : uint
x の結果を変位させる場合にどのカラーチャンネルをマップイメージで使用するかを指定します。 | DisplacementMapFilter | ||
componentY : uint
y の結果を変位させる場合にどのカラーチャンネルをマップイメージで使用するかを指定します。 | DisplacementMapFilter | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
mapBitmap : BitmapData
置き換えマップデータが含まれる BitmapData オブジェクトです。 | DisplacementMapFilter | ||
mapPoint : Point
マップイメージの左上隅を基準としたターゲット表示オブジェクトの左上隅のオフセットが含まれる値です。 | DisplacementMapFilter | ||
mode : String
フィルターのモードです。 | DisplacementMapFilter | ||
scaleX : Number
マップ計算の x 置き換え結果を拡大 / 縮小する場合に使用する乗数です。 | DisplacementMapFilter | ||
scaleY : Number
マップ計算の y 置き換え結果を拡大 / 縮小する場合に使用する乗数です。 | DisplacementMapFilter |
メソッド | 定義元 | ||
---|---|---|---|
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)
指定されたパラメーターで DisplacementMapFilter インスタンスを初期化します。 | DisplacementMapFilter | ||
[オーバーライド]
このフィルターオブジェクトのコピーを返します。 | DisplacementMapFilter | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object |
alpha | プロパティ |
alpha:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
範囲外置き換えの場合に使用するアルファ透明度値を指定します。0.0 ~ 1.0 に正規化した値を指定します。例えば、.25 を指定すると、透明度の値として 25% が設定されます。デフォルト値は 0 です。mode
プロパティが DisplacementMapFilterMode.COLOR
に設定されている場合は、このプロパティを使用します。
実装
public function get alpha():Number
public function set alpha(value:Number):void
color | プロパティ |
color:uint
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
範囲外置き換えの場合に使用する色を指定します。置き換えの有効範囲は 0.0 ~ 1.0 です。この値は、16 進数形式です。color
のデフォルト値は 0 です。mode
プロパティが DisplacementMapFilterMode.COLOR
に設定されている場合は、このプロパティを使用します。
実装
public function get color():uint
public function set color(value:uint):void
componentX | プロパティ |
componentX:uint
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
x の結果を変位させる場合にどのカラーチャンネルをマップイメージで使用するかを指定します。指定できる値は、BitmapDataChannel 定数です。
BitmapDataChannel.ALPHA
BitmapDataChannel.BLUE
BitmapDataChannel.GREEN
BitmapDataChannel.RED
実装
public function get componentX():uint
public function set componentX(value:uint):void
関連する API エレメント
componentY | プロパティ |
componentY:uint
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
y の結果を変位させる場合にどのカラーチャンネルをマップイメージで使用するかを指定します。指定できる値は、BitmapDataChannel 定数です。
BitmapDataChannel.ALPHA
BitmapDataChannel.BLUE
BitmapDataChannel.GREEN
BitmapDataChannel.RED
実装
public function get componentY():uint
public function set componentY(value:uint):void
関連する API エレメント
mapBitmap | プロパティ |
mapBitmap:BitmapData
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
置き換えマップデータが含まれる BitmapData オブジェクトです。
実装
public function get mapBitmap():BitmapData
public function set mapBitmap(value:BitmapData):void
例外
TypeError — BitmapData は、設定時に null に設定されます。
|
関連する API エレメント
mapPoint | プロパティ |
mode | プロパティ |
mode:String
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
フィルターのモードです。指定できる値は、DisplacementMapFilterMode 定数です。
DisplacementMapFilterMode.WRAP
- 置き換え値をソースイメージの反対側で折り返します。DisplacementMapFilterMode.CLAMP
- 置き換え値をソースイメージのエッジに固定します。DisplacementMapFilterMode.IGNORE
- 置き換え値が範囲外である場合、その置き換えを無視して、ソースピクセルを使用します。DisplacementMapFilterMode.COLOR
- 置き換え値がイメージの外にある場合、color
プロパティとalpha
プロパティの値を置き換えます。
実装
public function get mode():String
public function set mode(value:String):void
例外
TypeError — 文字列は、設定時に null に設定されます。
| |
ArgumentError — モードストリングは有効ではありません。
|
関連する API エレメント
scaleX | プロパティ |
scaleY | プロパティ |
DisplacementMapFilter | () | コンストラクター |
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)
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
指定されたパラメーターで DisplacementMapFilter インスタンスを初期化します。
パラメーターmapBitmap:BitmapData (default = null ) — 置き換えマップデータが含まれる BitmapData オブジェクトです。
| |
mapPoint:Point (default = null ) — マップイメージの左上隅を基準としたターゲット表示オブジェクトの左上隅のオフセットが含まれる値です。
| |
componentX:uint (default = 0 ) — x の結果を変位させる場合にどのカラーチャンネルをマップイメージで使用するかを指定します。指定できる値は、BitmapDataChannel 定数です。
| |
componentY:uint (default = 0 ) — y の結果を変位させる場合にどのカラーチャンネルをマップイメージで使用するかを指定します。指定できる値は、BitmapDataChannel 定数です。
| |
scaleX:Number (default = 0.0 ) — マップ計算の x 置き換え結果を拡大 / 縮小する場合に使用する乗数です。
| |
scaleY:Number (default = 0.0 ) — マップ計算の y 置き換え結果を拡大 / 縮小する場合に使用する乗数です。
| |
mode:String (default = "wrap ") — フィルターのモードです。指定できる値は、DisplacementMapFilterMode 定数です。
| |
color:uint (default = 0 ) — 範囲外置き換えの場合に使用する色を指定します。置き換えの有効範囲は 0.0 ~ 1.0 です。このパラメーターは、mode を DisplacementMapFilterMode.COLOR に設定する場合に使用します。
| |
alpha:Number (default = 0.0 ) — 範囲外置き換えの場合に使用するアルファ値を指定します。0.0 ~ 1.0 に正規化した値を指定します。例えば、.25 を指定すると、透明度の値として 25% が設定されます。このパラメーターは、mode を DisplacementMapFilterMode.COLOR に設定する場合に使用します。
|
関連する API エレメント
clone | () | メソッド |
override public function clone():BitmapFilter
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9 |
このフィルターオブジェクトのコピーを返します。
戻り値BitmapFilter — 元のインスタンスと同じプロパティをすべて備えた新しい DisplacementMapFilter インスタンスです。
|
- このクラスは背景色、テキストフィールドラベル、および様々な関数で使用するサイズおよびオフセットの変数を定義します。
- コンストラクター関数は
draw()
メソッドを呼び出します。このメソッドは、Graphics クラスのメソッドを使用して放射状グラデーション塗りの四角形を描画します。graphics
は、Sprite を拡張する DisplacementMapFilterExample オブジェクトのプロパティです。 - このコンストラクター関数は
createLabel()
メソッドを呼び出します。このメソッドはlabelText
の値を表示するテキストフィールドを作成して、表示リストに追加します。 - このコンストラクター関数は、
createFilter()
メソッドを呼び出します。このメソッドは以下の処理を行います。- フィルターオブジェクトの
filter
という名前の変数を作成します。 getDisplacementMapFilter()
メソッドを呼び出し、その戻り値をfilter
変数に割り当てます。filter
を DisplacementFilterExample(メインクラス)のfilters
プロパティに渡します。
- フィルターオブジェクトの
getBitmapFilter()
メソッドはmapBitmap
という名前の BitmapData オブジェクトを作成し、このオブジェクトにcreateBitmapData()
メソッドの結果を割り当てます。mapBitmap
オブジェクトは、他の変数と共に、新しい置き換えマップフィルターを定義します。createBitmapData()
メソッドは、DisplacementMapFilterExample オブジェクトの現在の内容に基づいた新しい BitmapData オブジェクトを作成します。bitmapData
に基づいた新しいビットマップを作成し、ステージに追加します。
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:34 AM Z