| 패키지 | flash.display |
| 클래스 | public class ShaderJob |
| 상속 | ShaderJob EventDispatcher Object |
| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
독립 실행형 모드에서 셰이더를 사용하는 두 가지 이유는 다음과 같습니다.
shader 속성(또는 생성자 매개 변수)은 작업에 사용되는 셰이더를 나타내는 Shader 인스턴스를 지정합니다. 연관된 ShaderParameter 또는 ShaderInput 인스턴스를 사용하여 셰이더에 필요한 임의의 매개 변수나 입력을 제공하십시오.
ShaderJob 작업을 실행하기 전에 객체를 target 속성의 값으로 설정하여 결과가 기록되는 객체를 제공합니다. 셰이더 작업이 완료되면 결과가 target 객체에 기록됩니다.
백그라운드 셰이더 작업을 시작하려면 start() 메서드를 호출해야 합니다. 작업이 완료되면 결과가 target 객체에 기록됩니다. 이때 ShaderJob 인스턴스는 complete 이벤트를 전달하여 리스너에게 결과를 확인할 수 있음을 알립니다.
셰이더를 동기적으로 실행하려면(백그라운드로 실행하지 않음) start() 메서드를 호출하고 인수로 true를 전달합니다. 셰이더가 기본 실행 스레드에서 실행되고 작업이 완료될 때까지 코드 실행을 중지합니다. 완료되면 결과가 target 객체에 기록됩니다. 이때 응용 프로그램은 코드의 다음 행에서 계속 실행됩니다.
참고 사항
| 속성 | 다음에 의해 정의됨 | ||
|---|---|---|---|
![]() | constructor : Object 지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | |
| height : int target에 들어 있는 결과 데이터의 높이입니다(ByteArray 또는 Vector.<Number> 인스턴스인 경우). | ShaderJob | ||
| progress : Number [읽기 전용] 실행 중인 셰이더의 진행률입니다. | ShaderJob | ||
![]() | prototype : Object [정적] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다. | Object | |
| shader : Shader 작업에 사용되는 셰이더입니다. | ShaderJob | ||
| target : Object 셰이더 작업의 결과가 기록되는 객체입니다. | ShaderJob | ||
| width : int target에 들어 있는 결과 데이터의 폭입니다(ByteArray 또는 Vector.<Number> 인스턴스인 경우). | ShaderJob | ||
| 메서드 | 다음에 의해 정의됨 | ||
|---|---|---|---|
| ShaderJob | |||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void 리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다. | EventDispatcher | |
현재 실행 중인 셰이더 작업을 취소합니다. | ShaderJob | ||
![]() | 이벤트를 이벤트 흐름으로 전달합니다. | EventDispatcher | |
![]() | EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher | |
![]() | 지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | |
![]() | Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | |
![]() | 지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | |
![]() | EventDispatcher 객체에서 리스너를 제거합니다. | EventDispatcher | |
![]() | 루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | |
waitForCompletion 매개 변수의 값에 따라 셰이더 작업을 동기적 또는 비동기적 모드에서 시작합니다. | ShaderJob | ||
![]() | 지정된 객체의 문자열 표현을 반환합니다. | Object | |
![]() | 지정된 객체의 프리미티브 값을 반환합니다. | Object | |
![]() | 이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher | |
| 이벤트 | 요약 | 다음에 의해 정의됨 | ||
|---|---|---|---|---|
![]() | [브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다. | EventDispatcher | ||
| ShaderJob이 셰이더를 사용하여 비동기적으로 데이터 처리를 완료하면 전달됩니다. | ShaderJob | |||
![]() | [브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다. | EventDispatcher | ||
| height | 속성 |
height:int [읽기/쓰기] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
target에 들어 있는 결과 데이터의 높이입니다(ByteArray 또는 Vector.<Number> 인스턴스인 경우). ByteArray 또는 Vector.<Number> 인스턴스의 크기는 필요한 기존 데이터를 덮어쓰게 되는 경우 확장됩니다.
public function get height():int public function set height(value:int):void| progress | 속성 |
progress:Number [읽기 전용] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
실행 중인 셰이더의 진행률입니다. 이 속성은 값이 0~1입니다. 0은 초기 값(0% 완료)이고, 1은 셰이더가 작업을 완료했음을 나타냅니다.
cancel() 메서드가 호출되면 이 속성은 undefined가 되고 해당 값은 셰이더 작업이 다시 시작될 때까지 안정적으로 사용할 수 없습니다.
public function get progress():Number| shader | 속성 |
shader:Shader [읽기/쓰기] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
작업에 사용되는 셰이더입니다. 셰이더에 필요한 모든 입력 또는 매개 변수는 Shader 인스턴스에 포함된 data 속성의 ShaderInput 또는 ShaderParameter 속성을 사용하여 제공해야 합니다. 입력의 경우 target 객체와 동일해도 해당 ShaderInput을 사용하여 제공해야 합니다.
선형 배열의 데이터(이미지 데이터와 반대)가 들어 있는 ByteArray를 처리하려면 ByteArray에서 해당 ShaderInput 인스턴스의 height를 1로, width는 32비트 부동 소수점 값으로 설정하십시오. 이 경우 셰이더의 입력은 image1 데이터 유형으로 정의해야 합니다.
public function get shader():Shader public function set shader(value:Shader):void참고 사항
| target | 속성 |
target:Object [읽기/쓰기] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
셰이더 작업의 결과가 기록되는 객체입니다. 이 객체는 BitmapData, ByteArray 또는 Vector.<Number> 인스턴스여야 합니다.
public function get target():Object public function set target(value:Object):void| width | 속성 |
width:int [읽기/쓰기] | 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
target에 들어 있는 결과 데이터의 폭입니다(ByteArray 또는 Vector.<Number> 인스턴스인 경우). ByteArray 또는 Vector.<Number> 인스턴스의 크기는 필요한 기존 데이터를 덮어쓰게 되는 경우 확장됩니다.
public function get width():int public function set width(value:int):void| ShaderJob | () | 생성자 |
public function ShaderJob(shader:Shader = null, target:Object = null, width:int = 0, height:int = 0)| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
shader:Shader (default = null) — 작업에 사용할 셰이더입니다. | |
target:Object (default = null) — 셰이더 작업의 결과가 기록되는 객체입니다. 이 인수는 BitmapData, ByteArray 또는 Vector.<Number> 인스턴스여야 합니다. | |
width:int (default = 0) —
target에 들어 있는 결과 데이터의 폭입니다(ByteArray 또는 Vector.<Number> 인스턴스인 경우). ByteArray 또는 Vector.<Number> 인스턴스의 크기는 필요한 기존 데이터를 덮어쓰게 되는 경우 확장됩니다.
| |
height:int (default = 0) —
target에 들어 있는 결과 데이터의 높이입니다(ByteArray 또는 Vector.<Number> 인스턴스인 경우). ByteArray 또는 Vector.<Number> 인스턴스의 크기는 필요한 기존 데이터를 덮어쓰게 되는 경우 확장됩니다.
|
| cancel | () | 메서드 |
public function cancel():void| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
현재 실행 중인 셰이더 작업을 취소합니다. 이미 계산된 결과 데이터는 모두 삭제됩니다. complete 이벤트는 전달되지 않습니다.
cancel()은 여러 번 호출해도 별다른 효과가 없습니다.
| start | () | 메서드 |
public function start(waitForCompletion:Boolean = false):void| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
waitForCompletion 매개 변수의 값에 따라 셰이더 작업을 동기적 또는 비동기적 모드에서 시작합니다.
기본값인 비동기적 모드에서(waitForCompletion이 false) ShaderJob은 백그라운드로 실행됩니다. 셰이더 작업은 표시 또는 다른 작업의 응답에 영향을 주지 않습니다. 비동기 모드에서 즉시 start() 호출을 반환하고 코드의 다음 행에서 프로그램 실행을 계속합니다. 비동기 셰이더 작업이 완료되면 결과를 사용할 수 있고 complete 이벤트가 전달됩니다.
백그라운드 ShaderJob 작업은 한 번에 한 개씩 실행됩니다. Shader 작업은 또한 실행될 때까지 대기열에 보관됩니다. 셰이더 작업이 실행 중일 때 start() 메서드를 호출하면 대기열 끝에 작업이 더 추가됩니다. 이후 해당 작업 순서가 되면 실행됩니다.
동기 모드에서 셰이더 작업을 실행하려면 waitForCompletion 매개 변수(유일한 매개 변수)에 true 값을 사용하여 start()를 호출합니다. 셰이더 작업이 완료될 때까지 start()가 호출된 위치에서 코드 실행을 중지합니다. 이때 결과를 사용할 수 있고 코드의 다음 행에서 실행을 계속합니다.
start() 메서드를 호출하면 shader 속성의 Shader 인스턴스가 내부적으로 복사됩니다. 셰이더 작업은 원본 셰이더에 대한 참조가 아닌 이 내부 사본을 사용합니다. 매개 변수 값, 입력 또는 바이트 코드 변경과 같이 셰이더의 모든 변경 사항은 셰이더 처리에 사용되는 셰이더 사본에는 적용되지 않습니다. 셰이더 변경 사항을 셰이더 처리에 통합하려면 cancel() 메서드를(필요한 경우) 호출하고 다시 start() 메서드를 호출하여 셰이더 처리를 다시 시작하십시오.
셰이더 작업이 실행 중일 때는 target 객체의 값이 변경되지 않습니다. 작업이 완료되고 complete 이벤트가 비동기 모드로 전달되면 target 객체에 전체 결과가 한 번에 기록됩니다. target 객체가 BitmapData 인스턴스이고 해당 dispose() 메서드가 작업 완료 전에 호출될 경우 complete 이벤트는 비동기 모드로 여전히 전달됩니다. 그러나 결과 데이터는 삭제된 상태이므로 BitmapData 객체에 기록되지 않습니다.
매개 변수
waitForCompletion:Boolean (default = false) —
셰이더를 백그라운드(false, 기본값)에서 실행할지, 기본 프로그램 실행(true)에서 실행할지 여부를 지정합니다.
|
complete: — start() 메서드가 true인 waitForCompletion 인수를 사용하여 호출되면 작업이 완료될 때 전달됩니다. |
ArgumentError —
target 속성이 null이거나 BitmapData, ByteArray 또는 Vector.<Number> 인스턴스가 아닌 경우
| |
ArgumentError — 셰이더가 제공되지 않은 이미지 입력을 지정한 경우 | |
ArgumentError —
ByteArray 또는 Vector.<Number> 인스턴스가 입력으로 사용되고 width 및 height 속성이 ShaderInput에 대해 지정되지 않았거나 지정된 값이 입력 객체의 데이터 양과 일치하지 않는 경우 (자세한 내용은 ShaderInput.input 속성 참조)
|
| complete | 이벤트 |
flash.events.ShaderEventflash.events.ShaderEvent.COMPLETE| 언어 버전: | ActionScript 3.0 |
| 런타임 버전: | Flash Player 10, AIR 1.5 |
ShaderJob이 셰이더를 사용하여 비동기적으로 데이터 처리를 완료하면 전달됩니다. start() 메서드를 waitForCompletion 매개 변수의 false 값을 사용하여 호출하면 ShaderJob 인스턴스가 비동기적으로 실행됩니다.
complete 이벤트 객체의 type 속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
| 속성 | 값 |
|---|---|
bubbles
|
false
|
bitmapData
|
완료된 작업의 결과를 포함하는 BitmapData 객체입니다(대상이 BitmapData 객체가 아닌 경우 null).
|
byteArray
|
완료된 작업의 결과를 포함하는 ByteArray 객체입니다(대상이 ByteArray 객체가 아닌 경우 null).
|
cancelable
|
false; 취소할 기본 비헤이비어가 없습니다.
|
currentTarget
| 이벤트 리스너를 통해 이벤트 객체를 처리하고 있는 객체입니다. |
target
| 완료를 보고하는 ShaderJob 객체입니다. |
vector
|
완료된 작업의 결과를 포함하는 Vector.<Number> 인스턴스이거나 null입니다(대상이 Vector.<Number> 인스턴스가 아닌 경우).
|