| Package | flash.filters |
| Class | public final class DisplacementMapFilter |
| Inheritance | DisplacementMapFilter BitmapFilter Object |
필터의 사용 방법은, 필터의 적용처 object에 따라서 다릅니다.
filters property를 사용합니다. object의 filters property를 설정해도, object는 변경되지 않습니다. filters property를 클리어 하는 것으로써, 필터를 취소할 수가 있습니다. BitmapData.applyFilter() Methods를 사용합니다. BitmapData object로 applyFilter() 를 호출하는 것에 의해, 소스 BitmapData object와 필터 object가 취득되어 필터를 적용해 얻을 수 있는 이미지가 생성됩니다. 표시 object에 필터를 적용하면, 표시 object의 cacheAsBitmap property의 값이 true 로 설정됩니다. 모든 필터를 클리어 하면,cacheAsBitmap 는 원의 값에 돌아옵니다.
이 필터에서는 다음의 식을 사용합니다.
dstPixel[x, y] = srcPixel[x + ((componentX(x, y) - 128) * scaleX) / 256, y + ((componentY(x, y) - 128) *scaleY) / 256)
componentX(x, y) 는,(x - mapPoint.x , y - mapPoint.y) 의 mapBitmap property로부터 componentX property의 칼라치를 취득합니다.
필터로 사용하는 MAP 이미지는, 스테이지의 확대·축소율에 일치하도록(듯이) 확대·축소됩니다. object 자체를 확대·축소하는 경우에는 확대·축소되지 않습니다.
이 필터는 스테이지의 확대·축소에 대응하고 있습니다만, 통상의 확대·축소, 회전, 경사에는 대응하고 있습니다. object 자체를 확대·축소하는 경우 (scaleX 와 scaleY property가 1.0 이외에 설정되어 있는 경우), 필터 효과는 확대·축소되지 않습니다. 필터가 확대·축소하는 것은, 스테이지를 줌인 하는 경우만입니다.
See also
| property | 정의 | ||
|---|---|---|---|
| alpha : Number
범위외 값환의 경우에 사용하는 알파 투명도 값을 지정합니다.
| DisplacementMapFilter | ||
| color : uint
범위외 값환의 경우에 사용하는 색을 지정합니다.
| DisplacementMapFilter | ||
| componentX : uint
x 의 결과를 변위시키는 경우에 어느 칼라 채널을 MAP 이미지로 사용하는지를 지정합니다.
| DisplacementMapFilter | ||
| componentY : uint
y 의 결과를 변위시키는 경우에 어느 칼라 채널을 MAP 이미지로 사용하는지를 지정합니다.
| DisplacementMapFilter | ||
![]() | constructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor 함수에의 참조입니다.
| Object | |
| mapBitmap : BitmapData
치환 MAP 데이터가 포함되는 BitmapData object입니다.
| DisplacementMapFilter | ||
| mapPoint : Point
MAP 이미지의 좌상구석을 기준으로 한 타겟 표시 object의 좌상구석의 오프셋(offset)가 포함되는 값입니다.
| DisplacementMapFilter | ||
| mode : String
필터의 모드입니다.
| DisplacementMapFilter | ||
![]() | prototype : Object
[static]
클래스 또는 함수 object의 prototype object에의 참조입니다.
| Object | |
| scaleX : Number
MAP 계산의 x 값환 결과를 확대·축소하는 경우에 사용하는 승수입니다.
| DisplacementMapFilter | ||
| scaleY : Number
MAP 계산의 y 값환 결과를 확대·축소하는 경우에 사용하는 승수입니다.
| DisplacementMapFilter | ||
| Methods | 정의 | ||
|---|---|---|---|
| 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)
지정된 Parameters로 DisplacementMapFilter 인스턴스를 초기화합니다.
| DisplacementMapFilter | ||
| clone ():BitmapFilter
이 필터 object의 복사를 돌려줍니다.
| DisplacementMapFilter | ||
![]() | hasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
| Object | |
![]() | isPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
| Object | |
![]() | propertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
| Object | |
![]() | setPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
| Object | |
![]() | toString ():String
지정된 object의 string 표현을 돌려줍니다.
| Object | |
![]() | valueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
| Object | |
| alpha | property |
alpha:Number [read-write]
범위외 값환의 경우에 사용하는 알파 투명도 값을 지정합니다. 0.0 ~ 1.0 에 정규화한 값을 지정합니다. 예를 들어,. 25 를 지정하면, 투명도의 값으로 해서 25% 가 설정됩니다. 디폴트치는 0 입니다. 이 property는,mode property가 DisplacementMapFilterMode.COLOR 로 설정되었을 경우에 사용합니다.
public function get alpha():Number
public function set alpha(value:Number ):void
| color | property |
color:uint [read-write]
범위외 값환의 경우에 사용하는 색을 지정합니다. 값환의 유효 범위는 0.0 ~ 1.0 입니다. 이 값은, 16 진수 형식입니다. color 의 디폴트치는 0 입니다. 이 property는,mode property가 DisplacementMapFilterMode.COLOR 로 설정되었을 경우에 사용합니다.
public function get color():uint
public function set color(value:uint ):void
| componentX | property |
componentX:uint [read-write]x 의 결과를 변위시키는 경우에 어느 칼라 채널을 MAP 이미지로 사용하는지를 지정합니다. 지정할 수 있는 값은, BitmapDataChannel 정수입니다.
BitmapDataChannel.ALPHABitmapDataChannel.BLUEBitmapDataChannel.GREENBitmapDataChannel.RED public function get componentX():uint
public function set componentX(value:uint ):void
See also
| componentY | property |
componentY:uint [read-write]y 의 결과를 변위시키는 경우에 어느 칼라 채널을 MAP 이미지로 사용하는지를 지정합니다. 지정할 수 있는 값은, BitmapDataChannel 정수입니다.
BitmapDataChannel.ALPHABitmapDataChannel.BLUEBitmapDataChannel.GREENBitmapDataChannel.RED public function get componentY():uint
public function set componentY(value:uint ):void
See also
| mapBitmap | property |
mapBitmap:BitmapData [read-write]치환 MAP 데이터가 포함되는 BitmapData object입니다.
Implements public function get mapBitmap():BitmapData
public function set mapBitmap(value:BitmapData ):void
TypeError — BitmapData 는, 설정시에 null 로 설정됩니다.
|
See also
| mapPoint | property |
mapPoint:Point [read-write]MAP 이미지의 좌상구석을 기준으로 한 타겟 표시 object의 좌상구석의 오프셋(offset)가 포함되는 값입니다.
Implements public function get mapPoint():Point
public function set mapPoint(value:Point ):void
TypeError — Point 는, 설정시에 null 로 설정됩니다.
|
See also
| mode | property |
mode:String [read-write]필터의 모드입니다. 지정할 수 있는 값은, DisplacementMapFilterMode 정수입니다.
DisplacementMapFilterMode.WRAP — 값환치를 소스 이미지의 반대측에서 되풀이합니다. DisplacementMapFilterMode.CLAMP — 값환치를 소스 이미지의 엣지에 클램프 합니다. DisplacementMapFilterMode.IGNORE — 값환치가 범위외인 경우, 그 값환을 무시해, 소스 픽셀을 사용합니다. DisplacementMapFilterMode.COLOR — 값환치가 이미지의 밖에 있는 경우,color property와 alpha property의 값을 옮겨놓습니다. public function get mode():String
public function set mode(value:String ):void
TypeError — String 는, 설정시에 null 로 설정됩니다.
|
|
ArgumentError — 모드 string는 유효하지는 않습니다.
|
See also
| scaleX | property |
scaleX:Number [read-write]MAP 계산의 x 값환 결과를 확대·축소하는 경우에 사용하는 승수입니다.
Implements public function get scaleX():Number
public function set scaleX(value:Number ):void
| scaleY | property |
scaleY:Number [read-write]MAP 계산의 y 값환 결과를 확대·축소하는 경우에 사용하는 승수입니다.
Implements public function get scaleY():Number
public function set scaleY(value:Number ):void
| DisplacementMapFilter | () | constructor |
public 함수 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)지정된 Parameters로 DisplacementMapFilter 인스턴스를 초기화합니다.
ParametersmapBitmap:BitmapData (default = null) — 값환 MAP 데이터가 포함되는 BitmapData object입니다.
|
|
mapPoint:Point (default = null) — MAP 이미지의 좌상구석을 기준으로 한 타겟 표시 object의 좌상구석의 오프셋(offset)가 포함되는 값입니다.
|
|
componentX:uint (default = 0) — x 의 결과를 변위시키는 경우에 어느 칼라 채널을 MAP 이미지로 사용하는지를 지정합니다. 지정할 수 있는 값은, BitmapDataChannel 정수입니다.
|
|
componentY:uint (default = 0) — y 의 결과를 변위시키는 경우에 어느 칼라 채널을 MAP 이미지로 사용하는지를 지정합니다. 지정할 수 있는 값은, BitmapDataChannel 정수입니다.
|
|
scaleX:Number (default = 0.0) — MAP 계산의 x 값환 결과를 확대·축소하는 경우에 사용하는 승수입니다.
|
|
scaleY:Number (default = 0.0) — MAP 계산의 y 값환 결과를 확대·축소하는 경우에 사용하는 승수입니다.
|
|
mode:String (default = "wrap") — 필터의 모드입니다. 지정할 수 있는 값은, DisplacementMapFilterMode 정수입니다.
|
|
color:uint (default = 0) — 범위외 값환의 경우에 사용하는 색을 지정합니다. 값환의 유효 범위는 0.0 ~ 1.0 입니다. 이 Parameters는,mode 를 DisplacementMapFilterMode.COLOR 로 설정하는 경우에 사용합니다.
|
|
alpha:Number (default = 0.0) — 범위외 값환의 경우에 사용하는 알파치를 지정합니다. 0.0 ~ 1.0 에 정규화한 값을 지정합니다. 예를 들어,. 25 를 지정하면, 투명도의 값으로 해서 25% 가 설정됩니다. 디폴트는 1.0 입니다. 이 Parameters는,mode 를 DisplacementMapFilterMode.COLOR 로 설정하는 경우에 사용합니다.
|
See also
| clone | () | Methods |
public override function clone():BitmapFilter 이 필터 object의 복사를 돌려줍니다.
반환값BitmapFilter —
원의 인스턴스와 같은 property를 모두 갖춘 새로운 DisplacementMapFilter 인스턴스입니다.
|
draw() Methods를 호출합니다.
이 Methods는, Graphics 클래스의 Methods를 사용해 방사상 그라데이션의 칠의 정방형을 묘화 합니다.
graphics 는 DisplacementMapFilterExample object의 property입니다.
DisplacementMapFilterExample object는, Sprite 를 확장한 것입니다. createLabel() Methods를 호출합니다. 이 Methods는
labelText 의 값을 표시하는 텍스트 필드를 작성해 표시 리스트에 추가합니다. createFilter() Methods를 호출합니다. 이 Methods는 이하의 처리를 실시합니다.
filter 를 작성합니다. getDisplacementMapFilter() Methods를 호출해, 반환값을
filter 변수로 설정합니다. filter 를
DisplacementFilterExample object (main 클래스). 의 filters property에 건네줍니다. getBitmapFilter() Methods는,
mapBitmap 라는 이름의 BitmapData object를 작성해,
createBitmapData() Methods의 결과에 할당합니다. mapBitmap object는,
다른 변수와 함께, 새로운 값환 MAP 필터를 정의합니다. createBitmapData() Methods는, 새로운 BitmapData object를 작성합니다. 이 object는,
현재의 DisplacementMapFilterExample object의 내용에 근거하고 있습니다. 이것은,
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://flexdocs.kr/docs/flex2/langref/flash/filters/DisplacementMapFilter.html