패키지flash.display
클래스public class ShaderJob
상속ShaderJob Inheritance EventDispatcher Inheritance Object

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10, AIR 1.5

ShaderJob 인스턴스는 셰이더 작업을 독립 실행형 모드에서 수행하는 데 사용됩니다. 셰이더 작업을 수행하고 결과 데이터를 반환합니다. 결과 사용 방법을 확인하는 것은 개발자의 책임입니다.

독립 실행형 모드에서 셰이더를 사용하는 두 가지 이유는 다음과 같습니다.

shader 속성(또는 생성자 매개 변수)은 작업에 사용되는 셰이더를 나타내는 Shader 인스턴스를 지정합니다. 연관된 ShaderParameter 또는 ShaderInput 인스턴스를 사용하여 셰이더에 필요한 임의의 매개 변수나 입력을 제공하십시오.

ShaderJob 작업을 실행하기 전에 객체를 target 속성의 값으로 설정하여 결과가 기록되는 객체를 제공합니다. 셰이더 작업이 완료되면 결과가 target 객체에 기록됩니다.

백그라운드 셰이더 작업을 시작하려면 start() 메서드를 호출해야 합니다. 작업이 완료되면 결과가 target 객체에 기록됩니다. 이때 ShaderJob 인스턴스는 complete 이벤트를 전달하여 리스너에게 결과를 확인할 수 있음을 알립니다.

셰이더를 동기적으로 실행하려면(백그라운드로 실행하지 않음) start() 메서드를 호출하고 인수로 true를 전달합니다. 셰이더가 기본 실행 스레드에서 실행되고 작업이 완료될 때까지 코드 실행을 중지합니다. 완료되면 결과가 target 객체에 기록됩니다. 이때 응용 프로그램은 코드의 다음 행에서 계속 실행됩니다.

참고 사항

Shader
ShaderInput
ShaderParameter
ShaderEvent
Using a shader in stand-alone mode


Public 속성
 속성다음에 의해 정의됨
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  height : int
target에 들어 있는 결과 데이터의 높이입니다(ByteArray 또는 Vector.<Number> 인스턴스인 경우).
ShaderJob
  progress : Number
[읽기 전용] 실행 중인 셰이더의 진행률입니다.
ShaderJob
 Inheritedprototype : Object
[정적] 클래스 또는 함수 객체의 프로토타입 객체에 대한 참조입니다.
Object
  shader : Shader
작업에 사용되는 셰이더입니다.
ShaderJob
  target : Object
셰이더 작업의 결과가 기록되는 객체입니다.
ShaderJob
  width : int
target에 들어 있는 결과 데이터의 폭입니다(ByteArray 또는 Vector.<Number> 인스턴스인 경우).
ShaderJob
Public 메서드
 메서드다음에 의해 정의됨
  
ShaderJob(shader:Shader = null, target:Object = null, width:int = 0, height:int = 0)
ShaderJob
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다.
EventDispatcher
  
현재 실행 중인 셰이더 작업을 취소합니다.
ShaderJob
 Inherited
이벤트를 이벤트 흐름으로 전달합니다.
EventDispatcher
 Inherited
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher 객체에서 리스너를 제거합니다.
EventDispatcher
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
  
start(waitForCompletion:Boolean = false):void
waitForCompletion 매개 변수의 값에 따라 셰이더 작업을 동기적 또는 비동기적 모드에서 시작합니다.
ShaderJob
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
 Inherited
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
이벤트
 이벤트 요약 다음에 의해 정의됨
 Inherited[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다.EventDispatcher
  ShaderJob이 셰이더를 사용하여 비동기적으로 데이터 처리를 완료하면 전달됩니다.ShaderJob
 Inherited[브로드캐스트 이벤트] 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 매개 변수의 값에 따라 셰이더 작업을 동기적 또는 비동기적 모드에서 시작합니다.

기본값인 비동기적 모드에서(waitForCompletionfalse) 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:ShaderEventstart() 메서드가 truewaitForCompletion 인수를 사용하여 호출되면 작업이 완료될 때 전달됩니다.

오류
ArgumentError target 속성이 null이거나 BitmapData, ByteArray 또는 Vector.<Number> 인스턴스가 아닌 경우
 
ArgumentError — 셰이더가 제공되지 않은 이미지 입력을 지정한 경우
 
ArgumentError — ByteArray 또는 Vector.<Number> 인스턴스가 입력으로 사용되고 widthheight 속성이 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 이벤트 리스너를 통해 이벤트 객체를 처리하고 있는 객체입니다.
target 완료를 보고하는 ShaderJob 객체입니다.
vector 완료된 작업의 결과를 포함하는 Vector.<Number> 인스턴스이거나 null입니다(대상이 Vector.<Number> 인스턴스가 아닌 경우).