패키지 | flash.display |
클래스 | public class ShaderJob |
상속 | ShaderJob EventDispatcher Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | Flash Player 10, AIR 1.5 |
독립 실행형 모드에서 셰이더를 사용하는 두 가지 이유는 다음과 같습니다.
- 이미지가 아닌 데이터 처리: ShaderJob 인스턴스를 사용하여 입력 값 및 셰이더 결과 사용 방법을 제어합니다. 셰이더에서는 이미지 데이터가 아닌 이진 데이터 또는 숫자 데이터로 결과를 반환할 수 있습니다.
- 백그라운드 처리: 일부 셰이더의 경우 복잡하고 실행에 많은 시간이 소요됩니다. 복잡한 셰이더를 응용 프로그램의 기본 실행으로 실행하면 사용자 상호 작용이나 화면 업데이트와 같은 응용 프로그램의 다른 부분이 느려질 수 있습니다. ShaderJob 인스턴스를 사용하여 백그라운드로 셰이더를 실행할 수 있습니다. 셰이더를 ShaderJob 인스턴스를 사용하여 실행하면 작업이 응용 프로그램의 기본 실행과 별도로 실행됩니다.
shader
속성(또는 생성자 매개 변수)은 작업에 사용되는 셰이더를 나타내는 Shader 인스턴스를 지정합니다. 연관된 ShaderParameter 또는 ShaderInput 인스턴스를 사용하여 셰이더에 필요한 임의의 매개 변수나 입력을 제공하십시오.
ShaderJob 작업을 실행하기 전에 객체를 target
속성의 값으로 설정하여 결과가 기록되는 객체를 제공합니다. 셰이더 작업이 완료되면 결과가 target
객체에 기록됩니다.
백그라운드 셰이더 작업을 시작하려면 start()
메서드를 호출해야 합니다. 작업이 완료되면 결과가 target
객체에 기록됩니다. 이때 ShaderJob 인스턴스는 complete
이벤트를 전달하여 리스너에게 결과를 확인할 수 있음을 알립니다.
셰이더를 동기적으로 실행하려면(백그라운드로 실행하지 않음) start()
메서드를 호출하고 인수로 true
를 전달합니다. 셰이더가 기본 실행 스레드에서 실행되고 작업이 완료될 때까지 코드 실행을 중지합니다. 완료되면 결과가 target
객체에 기록됩니다. 이때 응용 프로그램은 코드의 다음 행에서 계속 실행됩니다.
관련 API 요소
속성 | 정의 주체 | ||
---|---|---|---|
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
height : int
target에 들어 있는 결과 데이터의 높이입니다(ByteArray 또는 Vector.<Number> 인스턴스인 경우). | ShaderJob | ||
progress : Number [읽기 전용]
실행 중인 셰이더의 진행률입니다. | ShaderJob | ||
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 | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object | ||
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher |
이벤트 | 요약 | 정의 주체 | ||
---|---|---|---|---|
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다. | EventDispatcher | |||
ShaderJob이 셰이더를 사용하여 비동기적으로 데이터 처리를 완료하면 전달됩니다. | ShaderJob | |||
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다. | EventDispatcher |
height | 속성 |
progress | 속성 |
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
관련 API 요소
target | 속성 |
width | 속성 |
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.ShaderEvent
속성 ShaderEvent.type =
flash.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 | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 완료를 보고하는 ShaderJob 객체입니다. |
vector | ShaderJob.start() 메서드에 전달된 Vector.<Number> 인스턴스이거나 null 입니다(대상이 Vector.<Number> 인스턴스가 아닌 경우). |
Tue Jun 12 2018, 03:17 PM Z