패키지flash.filters
클래스public final class DisplacementMapFilter
상속DisplacementMapFilter Inheritance BitmapFilter Inheritance Object

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

DisplacementMapFilter 클래스는 지정된 BitmapData 객체(위치 변경 맵 이미지)의 픽셀 값을 사용하여 객체의 위치 변경을 수행합니다. 이 필터를 사용하여 BitmapData 객체는 물론 MovieClip, SimpleButton, TextField 및 Video 객체와 같이 DisplayObject 클래스로부터 상속되는 임의의 객체에 비틀기나 얼룩 효과를 적용할 수 있습니다.

필터 사용은 필터를 적용할 객체에 따라 달라집니다.

표시 객체에 필터를 적용하면 해당 표시 객체의 cacheAsBitmap 속성 값이 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 속성에서 componentX 속성 색상 값을 가져옵니다.

필터에 사용된 맵 이미지의 크기를 스테이지 크기에 맞게 조절할 수 있습니다. 객체 자체의 크기가 조절되는 경우 맵 이미지의 크기는 조절되지 않습니다.

이 필터에서는 스테이지의 크기를 조절할 수 있습니다. 그러나 일반 크기 조절, 회전 및 기울임은 지원하지 않습니다. 객체 자체의 크기가 조절되는 경우(scaleXscaleY 속성이 1.0 이외의 값으로 설정되는 경우), 필터 효과는 크기가 조절되지 않습니다. 스테이지에서 확대할 때만 크기가 조절됩니다.

예제를 통해 확인하십시오.

참고 사항

flash.display.BitmapData.applyFilter()
flash.display.DisplayObject.filters
flash.display.DisplayObject.cacheAsBitmap


Public 속성
 속성다음에 의해 정의됨
  alpha : Number
위치 변경 시 범위를 벗어날 경우 사용할 알파 투명도 값을 지정합니다.
DisplacementMapFilter
  color : uint
위치 변경 시 범위를 벗어날 경우 사용할 색상을 지정합니다.
DisplacementMapFilter
  componentX : uint
x 결과의 위치를 변경하기 위해 맵 이미지에 사용될 색상 채널을 보여 줍니다.
DisplacementMapFilter
  componentY : uint
y 결과의 위치를 변경하기 위해 맵 이미지에 사용할 색상 채널을 보여 줍니다.
DisplacementMapFilter
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  mapBitmap : BitmapData
위치 변경 맵 데이터를 포함하는 BitmapData 객체입니다.
DisplacementMapFilter
  mapPoint : Point
맵 이미지의 왼쪽 위 모서리로부터 대상 표시 객체의 왼쪽 위 모서리에 대한 오프셋을 포함하는 값입니다.
DisplacementMapFilter
  mode : String
필터 모드입니다.
DisplacementMapFilter
 Inheritedprototype : Object
[static] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
  scaleX : Number
맵 계산에서 x 위치 변경 결과의 크기를 조절하는 데 사용할 승수입니다.
DisplacementMapFilter
  scaleY : Number
맵 계산에서 y 위치 변경 결과의 크기를 조절하는 데 사용할 승수입니다.
DisplacementMapFilter
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)
지정된 매개 변수로 DisplacementMapFilter 인스턴스를 초기화합니다.
DisplacementMapFilter
  
이 필터 객체의 복사본을 반환합니다.
DisplacementMapFilter
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
속성 정보
alpha속성
alpha:Number  [read-write]

언어 버전 : ActionScript 3.0
Player 버전 : 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  [read-write]

언어 버전 : ActionScript 3.0
Player 버전 : 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  [read-write]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

x 결과의 위치를 변경하기 위해 맵 이미지에 사용할 색상 채널을 보여 줍니다. 다음과 같은 BitmapDataChannel 상수 값을 가질 수 있습니다.


구현
    public function get componentX():uint
    public function set componentX(value:uint):void

참고 사항

componentY속성 
componentY:uint  [read-write]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

y 결과의 위치를 변경하기 위해 맵 이미지에 사용할 색상 채널을 보여 줍니다. 다음과 같은 BitmapDataChannel 상수 값을 가질 수 있습니다.


구현
    public function get componentY():uint
    public function set componentY(value:uint):void

참고 사항

mapBitmap속성 
mapBitmap:BitmapData  [read-write]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

위치 변경 맵 데이터를 포함하는 BitmapData 객체입니다.


구현
    public function get mapBitmap():BitmapData
    public function set mapBitmap(value:BitmapData):void

오류
TypeError — 설정 중인 BitmapData가 null입니다.

참고 사항

mapPoint속성 
mapPoint:Point  [read-write]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

맵 이미지의 왼쪽 위 모서리로부터 대상 표시 객체의 왼쪽 위 모서리에 대한 오프셋을 포함하는 값입니다.


구현
    public function get mapPoint():Point
    public function set mapPoint(value:Point):void

오류
TypeError — 설정 중인 Point가 null입니다.

참고 사항

mode속성 
mode:String  [read-write]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

필터 모드입니다. 다음과 같은 DisplacementMapFilterMode 상수 값을 가질 수 있습니다.


구현
    public function get mode():String
    public function set mode(value:String):void

오류
TypeError — 설정 중인 문자열이 null입니다.
 
ArgumentError — 모드 문자열이 유효한 유형이 아닙니다.

참고 사항

scaleX속성 
scaleX:Number  [read-write]

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

맵 계산에서 x 위치 변경 결과의 크기를 조절하는 데 사용할 승수입니다.


구현
    public function get scaleX():Number
    public function set scaleX(value:Number):void
scaleY속성 
scaleY:Number  [read-write]

언어 버전 : ActionScript 3.0
Player 버전 : 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
Player 버전 : 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입니다. modeDisplacementMapFilterMode.COLOR로 설정된 경우 이 매개 변수를 사용합니다.
 
alpha:Number (default = 0.0) — 위치 변경 시 범위를 벗어날 경우 사용할 알파 값을 지정합니다. 0.0부터 1.0까지의 정규화된 값이 지정됩니다. 예를 들어, .25는 투명도 값을 25%로 설정합니다. modeDisplacementMapFilterMode.COLOR로 설정된 경우 이 매개 변수를 사용합니다.

참고 사항

메서드 정보
clone()메서드
public override function clone():BitmapFilter

언어 버전 : ActionScript 3.0
Player 버전 : Flash Player 9

이 필터 객체의 복사본을 반환합니다.

반환값
BitmapFilter — 원본과 모든 속성이 같은 새 DisplacementMapFilter 인스턴스입니다.
예제 예제 사용 방법
DisplacementMapFilterExample.as

다음 예제에서는 방사형 그래디언트 채우기를 적용한 사각형을 그리고 텍스트 필드를 만든 다음, BitmapData 객체를 만들고 DisplacementMapFilterExample 객체에 위치 변경 맵 필터를 적용합니다. 이 예제의 일반적인 작업 단계는 다음과 같습니다.
  1. 클래스는 배경색, 텍스트 필드 레이블 및 다양한 함수에서 사용할 크기 및 오프셋에 대한 변수를 정의합니다.
  2. 생성자 함수에서 Graphics 클래스의 메서드를 사용하여 방사형 그래디언트 채우기가 적용된 사각형을 그리는 draw() 메서드를 호출합니다. graphics는 Sprite를 확장하는 DisplacementMapFilterExample 객체의 속성입니다.
  3. 생성자 함수에서 createLabel() 메서드를 호출합니다. 이 메서드는 labelText의 값을 표시하는 텍스트 필드를 만들고 이것을 표시 목록에 추가합니다.
  4. 생성자 함수에서 createFilter() 메서드를 호출하고 이 메서드는 다음 작업을 수행합니다.
    • 필터 객체에 대한 filter라는 이름의 변수를 만듭니다.
    • getDisplacementMapFilter() 메서드를 호출하고 반환 값을 filter 변수에 할당합니다.
    • filter를 DisplacementFilterExample 객체(기본 클래스)의 filters 속성으로 전달합니다.
  5. getBitmapFilter() 메서드를 사용하여 mapBitmap이라는 BitmapData 객체를 만들고 이 객체에 createBitmapData() 메서드의 결과를 할당합니다. mapBitmap 객체는 다른 변수와 함께 새 위치 변경 맵 필터를 정의합니다.
  6. 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/flash/9.0_kr/ActionScriptLangRefV3/flash/filters/DisplacementMapFilter.html