This page was saved using jaction on 2006-09-04 8:33:37.
Address: http://flexdocs.kr/docs/flex2/langref/flash/filters/DisplacementMapFilter.html
Title: flash.filters.DisplacementMapFilter (Flex™ 2 레퍼런스 가이드)  •  Size: 48221
Packageflash.filters
Classpublic final class DisplacementMapFilter
InheritanceDisplacementMapFilter Inheritance BitmapFilter Inheritance Object

DisplacementMapFilter 클래스는, 지정된 BitmapData object (치환 MAP 이미지라고 말합니다)의 픽셀치를 사용해, object의 값환 (변위)을 실행합니다. 이 필터를 사용해, MovieClip, SimpleButton, TextField, Video object등의 DisplayObject 클래스로부터 Inheritance한 object, 및 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 자체를 확대·축소하는 경우 (scaleXscaleY property가 1.0 이외에 설정되어 있는 경우), 필터 효과는 확대·축소되지 않습니다. 필터가 확대·축소하는 것은, 스테이지를 줌인 하는 경우만입니다.

View the examples

See also

flash.display.BitmapData.applyFilter()
flash.display.DisplayObject.filters
flash.display.DisplayObject.cacheAsBitmap
Flex 에서의 필터의 사용


Public property
 property정의
  alpha : Number
범위외 값환의 경우에 사용하는 알파 투명도 값을 지정합니다.
DisplacementMapFilter
  color : uint
범위외 값환의 경우에 사용하는 색을 지정합니다.
DisplacementMapFilter
  componentX : uint
x 의 결과를 변위시키는 경우에 어느 칼라 채널을 MAP 이미지로 사용하는지를 지정합니다.
DisplacementMapFilter
  componentY : uint
y 의 결과를 변위시키는 경우에 어느 칼라 채널을 MAP 이미지로 사용하는지를 지정합니다.
DisplacementMapFilter
 Inheritedconstructor : Object
특정의 object 인스턴스의 클래스 object 또는 constructor    함수에의 참조입니다.
Object
  mapBitmap : BitmapData
치환 MAP 데이터가 포함되는 BitmapData object입니다.
DisplacementMapFilter
  mapPoint : Point
MAP 이미지의 좌상구석을 기준으로 한 타겟 표시 object의 좌상구석의 오프셋(offset)가 포함되는 값입니다.
DisplacementMapFilter
  mode : String
필터의 모드입니다.
DisplacementMapFilter
 Inheritedprototype : Object
[static] 클래스 또는 함수 object의 prototype object에의 참조입니다.
Object
  scaleX : Number
MAP 계산의 x 값환 결과를 확대·축소하는 경우에 사용하는 승수입니다.
DisplacementMapFilter
  scaleY : Number
MAP 계산의 y 값환 결과를 확대·축소하는 경우에 사용하는 승수입니다.
DisplacementMapFilter
Public Methods
 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
 InheritedhasOwnProperty (name:String ):Boolean
object로 지정된 property가 정의되고 있는지 어떤지를 나타냅니다.
Object
 InheritedisPrototypeOf (theClass:Object ):Boolean
Object 클래스의 인스턴스가, Parameters로서 지정된 object의 prototype 체인내에 있을지 어떨지를 나타냅니다.
Object
 InheritedpropertyIsEnumerable (name:String ):Boolean
지정된 property가 존재해, 열거 가능한가 어떤가를 나타냅니다.
Object
 InheritedsetPropertyIsEnumerable (name:String , isEnum:Boolean = true):void
루프 처리에 대한 다이나믹 property의 가용성을 설정합니다.
Object
 InheritedtoString ():String
지정된 object의 string 표현을 돌려줍니다.
Object
 InheritedvalueOf ():Object
지정된 object의 원시적치를 돌려줍니다.
Object
property의 상세
alphaproperty
alpha:Number   [read-write]

범위외 값환의 경우에 사용하는 알파 투명도 값을 지정합니다. 0.0 ~ 1.0 에 정규화한 값을 지정합니다. 예를 들어,. 25 를 지정하면, 투명도의 값으로 해서 25% 가 설정됩니다. 디폴트치는 0 입니다. 이 property는,mode property가 DisplacementMapFilterMode.COLOR 로 설정되었을 경우에 사용합니다.

Implements
    public function get alpha():Number
    public function set alpha(value:Number ):void
colorproperty 
color:uint   [read-write]

범위외 값환의 경우에 사용하는 색을 지정합니다. 값환의 유효 범위는 0.0 ~ 1.0 입니다. 이 값은, 16 진수 형식입니다. color 의 디폴트치는 0 입니다. 이 property는,mode property가 DisplacementMapFilterMode.COLOR 로 설정되었을 경우에 사용합니다.

Implements
    public function get color():uint
    public function set color(value:uint ):void
componentXproperty 
componentX:uint   [read-write]

x 의 결과를 변위시키는 경우에 어느 칼라 채널을 MAP 이미지로 사용하는지를 지정합니다. 지정할 수 있는 값은, BitmapDataChannel 정수입니다.

Implements
    public function get componentX():uint
    public function set componentX(value:uint ):void

See also

componentYproperty 
componentY:uint   [read-write]

y 의 결과를 변위시키는 경우에 어느 칼라 채널을 MAP 이미지로 사용하는지를 지정합니다. 지정할 수 있는 값은, BitmapDataChannel 정수입니다.

Implements
    public function get componentY():uint
    public function set componentY(value:uint ):void

See also

mapBitmapproperty 
mapBitmap:BitmapData   [read-write]

치환 MAP 데이터가 포함되는 BitmapData object입니다.

Implements
    public function get mapBitmap():BitmapData
    public function set mapBitmap(value:BitmapData ):void

Throws
TypeError — BitmapData 는, 설정시에 null 로 설정됩니다.

See also

mapPointproperty 
mapPoint:Point   [read-write]

MAP 이미지의 좌상구석을 기준으로 한 타겟 표시 object의 좌상구석의 오프셋(offset)가 포함되는 값입니다.

Implements
    public function get mapPoint():Point
    public function set mapPoint(value:Point ):void

Throws
TypeError — Point 는, 설정시에 null 로 설정됩니다.

See also

modeproperty 
mode:String   [read-write]

필터의 모드입니다. 지정할 수 있는 값은, DisplacementMapFilterMode 정수입니다.

Implements
    public function get mode():String
    public function set mode(value:String ):void

Throws
TypeError — String 는, 설정시에 null 로 설정됩니다.
 
ArgumentError — 모드 string는 유효하지는 않습니다.

See also

scaleXproperty 
scaleX:Number   [read-write]

MAP 계산의 x 값환 결과를 확대·축소하는 경우에 사용하는 승수입니다.

Implements
    public function get scaleX():Number
    public function set scaleX(value:Number ):void
scaleYproperty 
scaleY:Number   [read-write]

MAP 계산의 y 값환 결과를 확대·축소하는 경우에 사용하는 승수입니다.

Implements
    public function get scaleY():Number
    public function set scaleY(value:Number ):void
constructor    의 상세
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 인스턴스를 초기화합니다.

Parameters
mapBitmap: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는,modeDisplacementMapFilterMode.COLOR 로 설정하는 경우에 사용합니다.
 
alpha:Number (default = 0.0) — 범위외 값환의 경우에 사용하는 알파치를 지정합니다. 0.0 ~ 1.0 에 정규화한 값을 지정합니다. 예를 들어,. 25 를 지정하면, 투명도의 값으로 해서 25% 가 설정됩니다. 디폴트는 1.0 입니다. 이 Parameters는,modeDisplacementMapFilterMode.COLOR 로 설정하는 경우에 사용합니다.

See also

Methods의 상세
clone()Methods
public override function clone():BitmapFilter

이 필터 object의 복사를 돌려줍니다.

반환값
BitmapFilter — 원의 인스턴스와 같은 property를 모두 갖춘 새로운 DisplacementMapFilter 인스턴스입니다.
Examples

다음의 예에서는, 방사상 그라데이션의 칠의 정방형의 묘화, 텍스트 필드의 작성, BitmapData object의 작성을 실시해, 또 값환 MAP 필터를 DisplacementMapFilterExample object에 적용합니다. 이 예에 대한 일반적인 워크플로우는, 다음과 같이 됩니다.
  1. 이 클래스는 배경색, 텍스트 필드 label, 및 다양한 함수로 사용하는 크기 및 오프셋(offset)의 변수를 정의합니다.
  2. 이 constructor    함수는 draw() Methods를 호출합니다. 이 Methods는, Graphics 클래스의 Methods를 사용해 방사상 그라데이션의 칠의 정방형을 묘화 합니다. graphics 는 DisplacementMapFilterExample object의 property입니다. DisplacementMapFilterExample object는, Sprite 를 확장한 것입니다.
  3. 이 constructor    함수는,createLabel() Methods를 호출합니다. 이 Methods는 labelText 의 값을 표시하는 텍스트 필드를 작성해 표시 리스트에 추가합니다.
  4. 이 constructor    함수는,createFilter() Methods를 호출합니다. 이 Methods는 이하의 처리를 실시합니다.
    • 필터 object의 변수 filter 를 작성합니다.
    • getDisplacementMapFilter() Methods를 호출해, 반환값을 filter 변수로 설정합니다.
    • filter 를 DisplacementFilterExample object (main 클래스). 의 filters property에 건네줍니다.
  5. getBitmapFilter() Methods는, mapBitmap 라는 이름의 BitmapData object를 작성해, createBitmapData() Methods의 결과에 할당합니다. mapBitmap object는, 다른 변수와 함께, 새로운 값환 MAP 필터를 정의합니다.
  6. 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