| パッケージ | flash.filters |
| クラス | public final class DisplacementMapFilter |
| 継承 | DisplacementMapFilter BitmapFilter Object |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
フィルタの使用方法は、フィルタの適用先オブジェクトによって異なります。
filters プロパティを使用します。オブジェクトの filters プロパティを設定しても、オブジェクトは変更されません。filters プロパティをクリアすることにより、フィルタを取り消すことができます。 BitmapData.applyFilter() メソッドを使用します。BitmapData オブジェクトで applyFilter() を呼び出すことによって、\'83\'5cース 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 以外に設定されている場合)、フィルタ効果は拡大 / 縮小されません。フィルタが拡大 / 縮小されるのは、ユーザーがステージをズームインする場合のみです。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
| 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 | ||
![]() | prototype : Object [静的]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。 | Object | |
| 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 | ||
[override]
このフィルタオブジェクトのコピーを返します。 | DisplacementMapFilter | ||
![]() |
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | 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.ALPHABitmapDataChannel.BLUEBitmapDataChannel.GREENBitmapDataChannel.RED public function get componentX():uint public function set componentX(value:uint):void関連項目
| componentY | プロパティ |
componentY:uint| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
y の結果を変位させる場合にどのカラーチャンネルをマップイメージで使用するかを指定します。指定できる値は、BitmapDataChannel 定数です。
BitmapDataChannel.ALPHABitmapDataChannel.BLUEBitmapDataChannel.GREENBitmapDataChannel.RED public function get componentY():uint public function set componentY(value:uint):void関連項目
| mapBitmap | プロパティ |
mapBitmap:BitmapData| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
置き換えマップデータが含まれる BitmapData オブジェクトです。
public function get mapBitmap():BitmapData public function set mapBitmap(value:BitmapData):voidTypeError — BitmapData は、設定時に null に設定されます。
|
関連項目
| mapPoint | プロパティ |
mapPoint:Point| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
マップイメージの左上隅を基準としたターゲット表示オブジェクトの左上隅のオフセットが含まれる値です。
public function get mapPoint():Point public function set mapPoint(value:Point):voidTypeError — Point は、設定時に null に設定されます。
|
関連項目
| 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):voidTypeError — String は、設定時に null に設定されます。
| |
ArgumentError — モードストリングは有効ではありません。
|
関連項目
| scaleX | プロパティ |
scaleX:Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
マップ計算の x 置き換え結果を拡大 / 縮小する場合に使用する乗数です。
public function get scaleX():Number public function set scaleX(value:Number):void| scaleY | プロパティ |
scaleY:Number| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | AIR 1.0 Flash Player 9 |
マップ計算の y 置き換え結果を拡大 / 縮小する場合に使用する乗数です。
public function get scaleY():Number public function set scaleY(value:Number):void| 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 に設定する場合に使用します。
|
関連項目
| 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);
}
}
}
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/filters/DisplacementMapFilter.html