Packageflash.display
Classpublic class ShaderJob
InheritanceShaderJob Inheritance EventDispatcher Inheritance Object

Language Version : ActionScript 3.0
Player Version : Flash Player 10

A ShaderJob instance is used to execute a shader operation in the background. Some shaders are complex and require a notable amount of time to execute. Executing those shaders in the main execution line of an application could slow down other parts of the application such as user interaction or updating the screen. Instead, a shader can be executed in the background using a ShaderJob. When a shader is executed using a ShaderJob instance, the operation runs separate from the main execution of the application.

The shader property (or constructor parameter) specifies the Shader instance representing the shader that is used for the operation. You provide any parameter or input that the shader expects using the associated ShaderParameter or ShaderInput instance. To begin the operation, call the start() method. When it finishes the result is written into the target object. At that point the ShaderJob instance dispatches a complete event, notifying listeners that the result is available.

See also

Shader
ShaderInput
ShaderParameter
ShaderEvent


Public Properties
 PropertyDefined By
 Inheritedconstructor : Object
A reference to the class object or constructor function for a given object instance.
Object
  height : int
The height of the result data in the target if it is a ByteArray or Vector.<Number> instance.
ShaderJob
  progress : Number
[read-only] The progress of a running shader.
ShaderJob
 Inheritedprototype : Object
[static] A reference to the prototype object of a class or function object.
Object
  shader : Shader
The shader that's used for the operation.
ShaderJob
  target : Object
The object into which the result of the shader operation is written.
ShaderJob
  width : int
The width of the result data in the target if it is a ByteArray or Vector.<Number> instance.
ShaderJob
Public Methods
 MethodDefined By
  
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
Registers an event listener object with an EventDispatcher object so that the listener receives notification of an event.
EventDispatcher
  
Cancels the currently running shader operation.
ShaderJob
 Inherited
Dispatches an event into the event flow.
EventDispatcher
 Inherited
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
 Inherited
Indicates whether an object has a specified property defined.
Object
 Inherited
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
 Inherited
Indicates whether the specified property exists and is enumerable.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
 Inherited
Sets the availability of a dynamic property for loop operations.
Object
  
Starts a background shader operation.
ShaderJob
 Inherited
Returns the string representation of the specified object.
Object
 Inherited
Returns the primitive value of the specified object.
Object
 Inherited
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher
Events
 Event Summary Defined By
 InheritedDispatched when Flash Player gains operating system focus and becomes active.EventDispatcher
  Dispatched when the ShaderJob finishes processing the data using the shader.ShaderJob
 InheritedDispatched when Flash Player loses operating system focus and is becoming inactive.EventDispatcher
Property Detail
heightproperty
height:int  [read-write]

Language Version : ActionScript 3.0
Player Version : Flash Player 10

The height of the result data in the target if it is a ByteArray or Vector.<Number> instance. The size of the ByteArray or Vector.<Number> instance is enlarged if necessary and existing data is overwritten.


Implementation
    public function get height():int
    public function set height(value:int):void
progressproperty 
progress:Number  [read-only]

Language Version : ActionScript 3.0
Player Version : Flash Player 10

The progress of a running shader. This property is a value from 0 through 1. Zero is the initial value (0% complete). One indicates that the shader has completed its operation.

If the cancel() method is called this property becomes undefined, and its value cannot be used reliably until the shader operation starts again.


Implementation
    public function get progress():Number
shaderproperty 
shader:Shader  [read-write]

Language Version : ActionScript 3.0
Player Version : Flash Player 10

The shader that's used for the operation. Any input or parameter that the shader expects must be provided using the ShaderInput or ShaderParameter property of the Shader instance's data property. An input must be provided using its corresponding ShaderInput even if it is the same as the target object.

To process a ByteArray containing a linear array of data (as opposed to image data) set the corresponding ShaderInput instance's height to 1 and width to the number of 32-bit floating-point values in the ByteArray. In that case, the input in the shader must be defined with the image1 data type.


Implementation
    public function get shader():Shader
    public function set shader(value:Shader):void

See also

targetproperty 
target:Object  [read-write]

Language Version : ActionScript 3.0
Player Version : Flash Player 10

The object into which the result of the shader operation is written. This object must be a BitmapData, ByteArray, or Vector.<Number> instance.


Implementation
    public function get target():Object
    public function set target(value:Object):void
widthproperty 
width:int  [read-write]

Language Version : ActionScript 3.0
Player Version : Flash Player 10

The width of the result data in the target if it is a ByteArray or Vector.<Number> instance. The size of the ByteArray or Vector.<Number> instance is enlarged if necessary and existing data is overwritten.


Implementation
    public function get width():int
    public function set width(value:int):void
Constructor Detail
ShaderJob()Constructor
public function ShaderJob(shader:Shader = null, target:Object = null, width:int = 0, height:int = 0)

Language Version : ActionScript 3.0
Player Version : Flash Player 10

Parameters
shader:Shader (default = null) — The shader to use for the operation.
 
target:Object (default = null) — The object into which the result of the shader operation is written. This argument must be a BitmapData, ByteArray, or Vector.<Number> instance.
 
width:int (default = 0) — The width of the result data in the target if it is a ByteArray or Vector.<Number> instance. The size of the ByteArray or Vector.<Number> instance is enlarged if necessary and existing data is overwritten.
 
height:int (default = 0) — The height of the result data in the target if it is a ByteArray or Vector.<Number> instance. The size of the ByteArray or Vector.<Number> instance is enlarged if necessary and existing data is overwritten.
Method Detail
cancel()method
public function cancel():void

Language Version : ActionScript 3.0
Player Version : Flash Player 10

Cancels the currently running shader operation. Any already-computed result data is discarded. The complete event is not dispatched.

Calling cancel() multiple times has no additional effect.

start()method 
public function start():void

Language Version : ActionScript 3.0
Player Version : Flash Player 10

Starts a background shader operation. When the operation finishes, the complete event is dispatched.

ShaderJob execution runs in the background, so it does not affect the responsiveness of the display or other operations. Only one ShaderJob operation executes at a time. Shader operations are held in a queue until they execute. If you call the start() method while a shader operation is executing. the additional operation is added to the end of the queue and, when its turn comes, is executed.

When you call the start() method the Shader instance in the shader property is copied internally. The shader operation uses that internal copy, not a reference to the original shader. Any changes made to the shader, such as changing a parameter value, input, or bytecode, are not applied to the copied shader that's used for the shader processing. To incorporate shader changes into the shader processing, call the cancel() method (if necessary) and call the start() method again to restart the shader processing.

While a shader operation is executing, the target object's value is not changed. When the operation finishes and the complete event is dispatched the entire result is written to the target object at one time. If the target object is a BitmapData instance and its dispose() method is called before the operation finishes, the complete event is still dispatched. However, the result data is not written to the BitmapData object because it is in a disposed state.


Events
complete:ShaderEvent — Dispatched when the operation finishes.

Throws
ArgumentError — When the target property is null or is not a BitmapData, ByteArray, or Vector.<Number> instance.
 
ArgumentError — When the shader specifies an image input that isn't provided.
 
ArgumentError — When a ByteArray or Vector.<Number> instance is used as an input and the width and height properties aren't specified for the ShaderInput, or the specified values don't match the amount of data in the input object. See the ShaderInput.input property for more information.
Event Detail
complete Event
Event Object Type: flash.events.ShaderEvent
ShaderEvent.type property = flash.events.ShaderEvent.COMPLETE

Language Version : ActionScript 3.0
Player Version : Flash Player 10

Dispatched when the ShaderJob finishes processing the data using the shader.

Defines the value of the type property of a complete event object.

This event has the following properties:

PropertyValue
bubblesfalse
bitmapDataThe BitmapData object containing the result of the operation that finished (or null if the target wasn't a BitmapData object).
byteArrayThe ByteArray object containing the result of the operation that finished (or null if the target wasn't a ByteArray object).
cancelablefalse; there is no default behavior to cancel.
currentTargetThe object that is actively processing the event object with an event listener.
targetThe ShaderJob object reporting completion.
vectorThe Vector.<Number> instance containing the result of the operation that finished (or null if the target wasn't a Vector.<Number> instance).