ActionScript 3.0 Language and Components Reference | All Packages | All Classes | Language Elements | Index | Appendixes | Conventions | Frames No Frames |
ShaderJob

Package | flash.display
Class | public class ShaderJob
Inheritance | ShaderJob EventDispatcher 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
Hide Inherited Public Properties
Show Inherited Public Properties

| Property | Defined By
--- | --- | ---
|  | constructor : 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
|  | prototype : 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
Hide Inherited Public Methods
Show Inherited Public Methods

| Method | Defined By
--- | --- | ---
|  | ShaderJob(shader:Shader = null, target:Object = null, width:int = 0, height:int = 0) | ShaderJob
|  | 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
|  | cancel():void Cancels the currently running shader operation. | ShaderJob
|  | dispatchEvent(event:Event):Boolean Dispatches an event into the event flow. | EventDispatcher
|  | hasEventListener(type:String):Boolean Checks whether the EventDispatcher object has any listeners registered for a specific type of event. | EventDispatcher
|  | hasOwnProperty(name:String):Boolean Indicates whether an object has a specified property defined. | Object
|  | isPrototypeOf(theClass:Object):Boolean Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter. | Object
|  | propertyIsEnumerable(name:String):Boolean Indicates whether the specified property exists and is enumerable. | Object
|  | removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void Removes a listener from the EventDispatcher object. | EventDispatcher
|  | setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void Sets the availability of a dynamic property for loop operations. | Object
|  | start():void Starts a background shader operation. | ShaderJob
|  | toString():String Returns the string representation of the specified object. | Object
|  | valueOf():Object Returns the primitive value of the specified object. | Object
|  | willTrigger(type:String):Boolean Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type. | EventDispatcher

Events
Hide Inherited Events
Show Inherited Events

| Event | Summary | Defined By
--- | --- | --- | ---
|  | activate | Dispatched when Flash Player gains operating system focus and becomes active. | EventDispatcher
|  | complete | Dispatched when the ShaderJob finishes processing the data using the shader. | ShaderJob
|  | deactivate | Dispatched when Flash Player loses operating system focus and is becoming inactive. | EventDispatcher

Property Detail

height | property

`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`

progress | property |

`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`

shader | property |

`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

flash.display.ShaderData
flash.display.ShaderInput
flash.display.ShaderParameter

target | property |

`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`

width | property |

`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:

Property | Value
--- | ---
`bubbles` | `false`
`bitmapData` | The BitmapData object containing the result of the operation that finished (or `null` if the target wasn't a BitmapData object).
`byteArray` | The ByteArray object containing the result of the operation that finished (or `null` if the target wasn't a ByteArray object).
`cancelable` | `false`; there is no default behavior to cancel.
`currentTarget` | The object that is actively processing the event object with an event listener.
`target` | The ShaderJob object reporting completion.
`vector` | The Vector.<Number> instance containing the result of the operation that finished (or `null` if the target wasn't a Vector.<Number> instance).

Submit Feedback on LiveDocs
© 2004-2008 Adobe Systems Incorporated. All rights reserved.
Tue May 20 2008, 04:02 AM -07:00