패키지 | flash.filters |
클래스 | public final class GradientGlowFilter |
상속 | GradientGlowFilter BitmapFilter Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
필터 사용은 필터를 적용할 객체에 따라 달라집니다.
- 표시 객체에 필터를 적용하려면
filters
속성을 사용합니다. 객체의filters
속성을 설정해도 객체가 수정되지는 않으며,filters
속성을 지워야 필터를 제거할 수 있습니다. - BitmapData 객체에 필터를 적용하려면
BitmapData.applyFilter()
메서드를 사용합니다. BitmapData 객체에서applyFilter()
를 호출하면 소스 BitmapData 객체와 필터 객체가 사용되고 필터링된 이미지가 결과로 생성됩니다.
표시 객체에 필터를 적용하면 해당 표시 객체의 cacheAsBitmap
속성이 true
로 설정됩니다. 모든 필터를 지우면 cacheAsBitmap
의 원래 값이 복원됩니다.
이 필터에서는 스테이지의 크기를 조절할 수 있습니다. 그러나 전체 크기 조절, 회전 및 기울임은 지원하지 않습니다. 객체 자체의 크기가 조절된 경우(scaleX
및 scaleY
가 1.0 이외의 값으로 설정된 경우) 필터 효과의 크기는 조절되지 않습니다. 스테이지에서 확대할 때만 크기가 조절됩니다.
결과 이미지가 최대 크기를 초과하는 경우 필터는 적용되지 않습니다. AIR 1.5 및 Flash Player 10에서는 최대값이 8,191픽셀(폭 또는 높이)이며 총 픽셀 수는 16,777,215픽셀을 초과할 수 없습니다. 따라서 이미지의 폭이 8,191픽셀이면 높이가 2,048픽셀 이하여야 합니다. Flash Player 9 이전 버전 및 AIR 1.1 이전 버전에서는 이 제한이 높이 2,880픽셀 및 폭 2,880픽셀입니다. 예를 들어 필터가 적용된 큰 동영상 클립을 확대하는 경우 결과 이미지가 최대 크기를 초과하면 필터가 해제됩니다.
관련 API 요소
flash.display.BitmapData.applyFilter()
flash.display.DisplayObject.cacheAsBitmap
flash.display.DisplayObject.filters
GlowFilter 클래스
속성 | 정의 주체 | ||
---|---|---|---|
alphas : Array
colors 배열에서 해당 색상의 알파 투명도 값의 배열입니다. | GradientGlowFilter | ||
angle : Number
각도를 나타냅니다. | GradientGlowFilter | ||
blurX : Number
수평 흐림 효과의 정도를 나타냅니다. | GradientGlowFilter | ||
blurY : Number
수직 흐림 효과의 정도를 나타냅니다. | GradientGlowFilter | ||
colors : Array
그래디언트를 정의하는 색상의 배열을 나타냅니다. | GradientGlowFilter | ||
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
distance : Number
광선의 오프셋 거리입니다. | GradientGlowFilter | ||
knockout : Boolean
객체에 녹아웃 효과를 적용할지 여부를 지정합니다. | GradientGlowFilter | ||
quality : int
필터 적용 횟수입니다. | GradientGlowFilter | ||
ratios : Array
colors 배열에서 해당 색상에 대한 색상 배분 비율의 배열입니다. | GradientGlowFilter | ||
strength : Number
인쇄나 분사 강도를 나타냅니다. | GradientGlowFilter | ||
type : String
필터 효과의 배치를 나타냅니다. | GradientGlowFilter |
메서드 | 정의 주체 | ||
---|---|---|---|
GradientGlowFilter(distance:Number = 4.0, angle:Number = 45, colors:Array = null, alphas:Array = null, ratios:Array = null, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1, quality:int = 1, type:String = "inner", knockout:Boolean = false)
지정된 매개 변수를 사용하여 해당 필터를 초기화합니다. | GradientGlowFilter | ||
[재정의]
이 필터 객체의 복사본을 반환합니다. | GradientGlowFilter | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object |
alphas | 속성 |
alphas:Array
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
colors
배열에서 해당 색상의 알파 투명도 값의 배열입니다. 배열된 각 요소의 유효한 값은 0부터 1까지입니다. 예를 들어 .25는 알파 투명도 값을 25%로 설정합니다.
alphas
속성은 해당 값을 바로 수정해서 변경할 수 없습니다. 대신 alphas
에 대한 참조를 가져오고 해당 참조를 변경한 다음 참조에 대한 alphas
를 설정해야 합니다.
colors
, alphas
및 ratios
속성은 서로 연관되어 있습니다. 즉, colors
배열의 첫 번째 요소는 alphas
배열과 ratios
배열의 첫 번째 요소에 해당하고 나머지 요소도 이와 마찬가지입니다.
구현
public function get alphas():Array
public function set alphas(value:Array):void
오류
TypeError — 설정 중인 Array가 null입니다.
|
관련 API 요소
angle | 속성 |
angle:Number
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
각도를 나타냅니다. 유효한 값은 0부터 360까지입니다. 기본값은 45입니다.
각도 값은 객체에 해당하는 가상 광원의 각도를 나타내며 이 값으로 해당 객체를 기준으로 효과의 배치를 결정합니다. distance
가 0으로 설정된 경우 객체로부터 해당 효과가 오프셋되지 않으므로 angle
속성은 아무런 영향을 주지 않습니다.
구현
public function get angle():Number
public function set angle(value:Number):void
blurX | 속성 |
blurY | 속성 |
colors | 속성 |
colors:Array
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
그래디언트를 정의하는 색상의 배열을 나타냅니다. 예를 들어 빨강은 0xFF0000이고 파랑은 0x0000FF입니다.
colors
속성은 해당 값을 바로 수정해서 변경할 수 없습니다. 대신 colors
에 대한 참조를 가져오고 해당 참조를 변경한 다음 참조에 대한 colors
를 설정해야 합니다.
colors
, alphas
및 ratios
속성은 서로 연관되어 있습니다. 즉, colors
배열의 첫 번째 요소는 alphas
배열과 ratios
배열의 첫 번째 요소에 해당하고 나머지 요소도 이와 마찬가지입니다.
구현
public function get colors():Array
public function set colors(value:Array):void
오류
TypeError — 설정 중인 Array가 null입니다.
|
관련 API 요소
distance | 속성 |
knockout | 속성 |
quality | 속성 |
quality:int
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
필터 적용 횟수입니다. 기본값은 BitmapFilterQuality.LOW
로서 필터를 1회 적용하는 것과 동일합니다. 값 BitmapFilterQuality.MEDIUM
은 필터를 2회 적용하고 값 BitmapFilterQuality.HIGH
는 3회 적용합니다. 낮은 값을 가진 필터가 보다 빠르게 렌더링됩니다.
대부분의 응용 프로그램의 경우 quality
값을 낮음, 중간, 높음으로 설정하면 충분합니다. 15까지의 추가적인 숫자 값을 사용하여 다른 효과를 얻을 수 있으나 값이 높을수록 렌더링 속도가 느려집니다. quality
값을 올리는 대신 간단히 blurX
및 blurY
속성의 값을 올려도 보다 빠른 렌더링으로 유사한 효과를 얻을 수 있습니다.
구현
public function get quality():int
public function set quality(value:int):void
관련 API 요소
ratios | 속성 |
ratios:Array
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
colors
배열에서 해당 색상에 대한 색상 배분 비율의 배열입니다. 유효한 값은 0부터 255까지입니다.
ratios
속성은 해당 값을 바로 수정해서 변경할 수 없습니다. 대신 ratios
에 대한 참조를 가져오고 해당 참조를 변경한 다음 참조에 대한 ratios
를 설정해야 합니다.
colors
, alphas
및 ratios
속성은 서로 연관되어 있습니다. 즉, colors
배열의 첫 번째 요소는 alphas
배열과 ratios
배열의 첫 번째 요소에 해당하고 나머지 요소도 이와 마찬가지입니다.
여러 줄의 색상이 서로 블렌드되는 그래디언트와 함께 객체의 중심(distance
값이 0인 경우)에서 광선이 발산되는 그래디언트 광선 필터를 생각해 봅니다. colors
배열의 첫 색상은 광선의 가장 바깥쪽 색상입니다. 마지막 색상은 광선의 가장 안쪽 색상입니다.
ratios
배열의 각 값으로 그래디언트 반경에서의 색상 위치를 설정합니다. 여기서 0은 그래디언트의 가장 바깥쪽 지점을 나타내고 255는 그래디언트의 가장 안쪽 지점을 나타냅니다. 비율 값은 0과 255픽셀 사이의 범위에 있고 이 값은 점점 증가합니다(예: [0, 64, 128, 200, 255]). 0부터 128까지의 값은 광선의 외부 가장자리에 나타납니다. 129부터 255까지의 값은 광선의 내부 가장자리에 나타납니다. 색상의 비율 값과 필터의 type
값에 따라 필터를 적용하는 객체에 의해 필터 색상이 흐려질 수 있습니다.
다음 코드 및 그림에서는 type이 "full"
로 설정된 검은색 원 동영상 클립에 필터가 적용됩니다. 이 예제에서는 흰색 문서 배경과 대비되도록 colors
배열의 첫 색상인 분홍색에 대한 alpha
값을 1로 설정하였습니다. 실제로 첫 색상이 이런 방식으로 표시되지 않도록 할 수 있습니다. 배열의 마지막 색상인 노랑은 필터가 적용되는 검은색 원을 흐리게 만듭니다.
var colors:Array = [0xFFCCFF, 0x0000FF, 0x9900FF, 0xFF0000, 0xFFFF00]; var alphas:Array = [1, 1, 1, 1, 1]; var ratios:Array = [0, 32, 64, 128, 225]; var myGGF:GradientGlowFilter = new GradientGlowFilter(0, 0, colors, alphas, ratios, 50, 50, 1, 2, "full", false);
type
값을 "outer"
또는 "full"
로 설정할 때 문서 배경과 매끄럽게 연결되도록 하려면 배열의 첫 색상을 문서 배경과 같은 색상으로 설정하거나 첫 색상의 알파 값을 0으로 설정합니다. 두 방법 모두 필터와 배경이 블렌드되도록 합니다.
동일한 ratios
및 colors
배열을 사용할 경우에도 코드에서 두 가지 내용만 약간 변경해도 광선 효과는 크게 달라질 수 있습니다. 배열에 있는 첫 색상의 알파 값을 0으로 설정하여 필터가 문서의 흰색 배경에 블렌드되도록 하고 type
속성을 "outer"
또는 "inner"
로 설정합니다. 이렇게 하면 다음 이미지와 같은 결과를 얻을 수 있습니다.
그래디언트에서 색상의 분사는 blurX
, blurY
, strength
및 quality
속성의 값과 ratios
값에 따라 달라집니다.
구현
public function get ratios():Array
public function set ratios(value:Array):void
오류
TypeError — 설정 중인 Array가 null입니다.
|
관련 API 요소
strength | 속성 |
type | 속성 |
type:String
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
필터 효과의 배치를 나타냅니다. 다음과 같은 flash.filters.BitmapFilterType 상수 값을 가질 수 있습니다.
BitmapFilterType.OUTER
- 객체의 외부 가장자리 광선BitmapFilterType.INNER
- 객체의 내부 가장자리 광선(기본값)BitmapFilterType.FULL
- 객체의 위쪽 광선
구현
public function get type():String
public function set type(value:String):void
오류
TypeError — 설정 중인 문자열이 null입니다.
|
GradientGlowFilter | () | 생성자 |
public function GradientGlowFilter(distance:Number = 4.0, angle:Number = 45, colors:Array = null, alphas:Array = null, ratios:Array = null, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1, quality:int = 1, type:String = "inner", knockout:Boolean = false)
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
지정된 매개 변수를 사용하여 해당 필터를 초기화합니다.
매개 변수distance:Number (default = 4.0 ) — 광선의 오프셋 거리입니다.
| |
angle:Number (default = 45 ) — 각도를 나타냅니다. 유효한 값은 0부터 360까지입니다.
| |
colors:Array (default = null ) — 그래디언트를 정의하는 색상의 배열을 나타냅니다. 예를 들어 빨강은 0xFF0000이고 파랑은 0x0000FF입니다.
| |
alphas:Array (default = null ) — colors 배열에서 해당 색상의 알파 투명도 값의 배열입니다. 배열된 각 요소의 유효한 값은 0부터 1까지입니다. 예를 들어 값이 .25이면 알파 투명 값이 25%로 설정됩니다.
| |
ratios:Array (default = null ) — 색상 배분 비율의 배열입니다. 유효한 값은 0부터 255까지입니다. 이 값은 100%로 색상이 샘플링되는 곳의 폭에 대한 백분율을 정의합니다.
| |
blurX:Number (default = 4.0 ) — 수평 흐림 효과의 정도를 나타냅니다. 유효한 값은 0부터 255까지입니다. 흐림 효과가 1 이하이면 원본 이미지가 그대로 복사됩니다. 2의 거듭제곱 값(예: 2, 4, 8, 16, 32 등)은 다른 값보다 빠르게 렌더링하도록 최적화되었습니다.
| |
blurY:Number (default = 4.0 ) — 수직 흐림 효과의 정도를 나타냅니다. 유효한 값은 0부터 255까지입니다. 흐림 효과가 1 이하이면 원본 이미지가 그대로 복사됩니다. 2의 거듭제곱 값(예: 2, 4, 8, 16, 32 등)은 다른 값보다 빠르게 렌더링하도록 최적화되었습니다.
| |
strength:Number (default = 1 ) — 인쇄나 분사 강도를 나타냅니다. 값이 클수록 보다 많은 색상이 인쇄되고 광선과 배경 사이의 대비가 보다 뚜렷해집니다. 유효한 값은 0부터 255까지입니다. 값이 클수록 뚜렷하게 인쇄됩니다. 값이 0이면 필터를 적용하지 않은 것입니다.
| |
quality:int (default = 1 ) — 필터 적용 횟수입니다. 다음과 같은 BitmapFilterQuality 상수를 사용합니다.
자세한 내용은 | |
type:String (default = "inner ") — 필터 효과의 배치를 나타냅니다. 다음과 같은 flash.filters.BitmapFilterType 상수 값을 가질 수 있습니다.
| |
knockout:Boolean (default = false ) — 객체에 녹아웃 효과를 적용할지 여부를 지정합니다. 녹아웃 효과는 객체를 투명하게 채우고 문서의 배경색을 드러냅니다. true 값은 녹아웃 효과를 지정합니다. 기본값은 false (녹아웃 효과 사용 안 함)입니다.
|
clone | () | 메서드 |
override public function clone():BitmapFilter
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9 |
이 필터 객체의 복사본을 반환합니다.
반환값BitmapFilter — 원본 GradientGlowFilter 인스턴스와 모든 속성이 같은 새 GradientGlowFilter 인스턴스입니다.
|
- 필요한 클래스를 가져옵니다.
- 사각형과 필터를 정의하는 데 사용할 전역 변수를 선언합니다.
- 다음과 같은 기능을 하는 생성자 함수를 만듭니다.
draw()
메서드를 호출합니다. 이 메서드는 Sprite의graphics
속성을 통해 액세스되는 Graphics 클래스의 메서드를 사용하여 사각형을 그립니다.filter
라는 이름의 BitmapFilter 객체를 만들고 이 객체에 필터를 만드는getBitmapFilter()
호출의 반환 값을 할당합니다.myFilters
라는 이름의 새 배열을 만들고filter
를 추가합니다.myFilters
를 GradientGlowFilterExample 객체의filters
속성에 할당합니다. 이것은myFilters
의 모든 필터에 적용되며, 이 경우에는filter
뿐입니다.
package { import flash.filters.BitmapFilter; import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; import flash.filters.GradientGlowFilter; import flash.display.Sprite; public class GradientGlowFilterExample extends Sprite { private var bgColor:uint = 0xCCCCCC; private var size:uint = 80; private var offset:uint = 50; private var distance:Number = 0; private var angleInDegrees:Number = 45; private var colors:Array = [0xFFFFFF, 0xFF0000, 0xFFFF00, 0x00CCFF]; private var alphas:Array = [0, 1, 1, 1]; private var ratios:Array = [0, 63, 126, 255]; private var blurX:Number = 50; private var blurY:Number = 50; private var strength:Number = 2.5; private var quality:Number = BitmapFilterQuality.HIGH; private var type:String = BitmapFilterType.OUTER; private var knockout:Boolean = false; public function GradientGlowFilterExample() { draw(); var filter:BitmapFilter = getBitmapFilter(); var myFilters:Array = new Array(); myFilters.push(filter); filters = myFilters; } private function getBitmapFilter():BitmapFilter { return new GradientGlowFilter(distance, angleInDegrees, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout); } private function draw():void { graphics.beginFill(bgColor); graphics.drawRect(offset, offset, size, size); graphics.endFill(); } } }
Tue Jun 12 2018, 03:17 PM Z