패키지 | 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)
는 (x - mapPoint.x ,y - mapPoint.y)
의 mapBitmap
속성에서 componentX
속성 색상 값을 가져옵니다.
필터에 사용된 맵 이미지의 크기를 스테이지 크기에 맞게 조절할 수 있습니다. 객체 자체의 크기가 조절되는 경우 맵 이미지의 크기는 조절되지 않습니다.
이 필터에서는 스테이지의 크기를 조절할 수 있습니다. 그러나 일반 크기 조절, 회전 및 기울임은 지원하지 않습니다. 객체 자체의 크기가 조절되는 경우(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 인스턴스입니다.
|
- 클래스는 배경색, 텍스트 필드 레이블 및 다양한 함수에서 사용할 크기 및 오프셋에 대한 변수를 정의합니다.
- 생성자 함수에서 Graphics 클래스의 메서드를 사용하여 방사형 그래디언트 채우기가 적용된 사각형을 그리는
draw()
메서드를 호출합니다.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, 03:17 PM Z