パッケージflash.display
クラスpublic class ShaderJob
継承ShaderJob Inheritance EventDispatcher Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

スタンドアローンモードでシェーダ操作を実行するには、ShaderJob インスタンスを使用します。シェーダ操作が実行されて、その結果のデータが返されます。その結果の使用方法は開発者が決めます。

シェーダをスタンドアローンモードで使用する主な理由が 2 つあります。

shader プロパティ (またはコンストラクタパラメータ) は、操作に使用するシェーダを表す Shader インスタンスを指定します。シェーダに必要なパラメータや入力を指定するには、関連する ShaderParameter や ShaderInput インスタンスを使用します。

ShaderJob 操作の実行前に、結果の書き込み先のオブジェクトを target プロパティの値として設定します。シェーダ操作が終了すると、結果が target オブジェクトに書き込まれます。

バックグラウンドでのシェーダ操作を開始するには、start() メソッドを呼び出します。操作が終了すると、結果が target オブジェクトに書き込まれます。その時点で、ShaderJob インスタンスは complete イベントを送出し、結果が出ていることをリスナーに通知します。

シェーダをバックグラウンドで実行せずに同期的に実行するには、start() メソッドを呼び出して true を引数として渡します。シェーダはメイン実行のスレッドで実行され、この操作が完了するまでコードが一時停止します。終了すると、結果が target オブジェクトに書き込まれます。その後にアプリケーションの実行が次のコード行から続行されます。

関連項目

Shader
ShaderInput
ShaderParameter
ShaderEvent


パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  height : int
ByteArray または Vector の場合は、target の結果データの高さです。<Number> インスタンスです。
ShaderJob
  progress : Number
[読み取り専用] 実行中のシェーダの進行状況です。
ShaderJob
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  shader : Shader
操作に使用したシェーダです。
ShaderJob
  target : Object
シェーダ操作の結果が書き込まれるオブジェクトです。
ShaderJob
  width : int
ByteArray または Vector の場合は、target の結果データの幅です。<Number> インスタンスです。
ShaderJob
パブリックメソッド
 メソッド定義元
  
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

ByteArray または Vector の場合は、target の結果データの高さです。<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 プロパティを使用して、目的のシェーダの入力またはパラメータを指定する必要があります。対応する ShaderInput が target オブジェクトと同じ場合でも、これを使用して入力を指定する必要があります。

線形データ配列 (イメージデータではなく) を含む 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

ByteArray または Vector の場合は、target の結果データの幅です。<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) — ByteArray または Vector の場合は、target の結果データの幅です。<Number> インスタンスです。ByteArray または Vector のサイズです。<Number> インスタンスは必要に応じて拡大され、既存のデータは上書きされます。
 
height:int (default = 0) — ByteArray または Vector の場合は、target の結果データの高さです。<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 イベントが送出されます。

バックグラウンドでは一度に 1 つの ShaderJob 操作のみが実行されます。シェーダ操作は実行されるまでキューに入ります。シェーダ操作の実行中に start() メソッドを呼び出すと、追加の操作がキューの末尾に追加されます。後で順番が来ると、その操作が実行されます。

シェーダ操作を同期モードで実行するには、start() を呼び出して waitForCompletion パラメータ (唯一のパラメータ) に true を渡します。シェーダ操作が完了するまでは、コードの実行が start() を呼び出した箇所で一時停止します。操作が完了すると、結果が出て次のコード行から実行が続行されます。

start() メソッドを呼び出すと、shader プロパティの Shader インスタンスの内部的にコピーされます。シェーダ操作は、元のシェーダを参照するのではなく、その内部コピーを使用します。パラメータ値、入力、バイトコードの変更などの変更をシェーダに加えたとしても、シェーダの処理で使用したコピーシェーダにはその変更は適用されません。シェーダの変更をシェーダの処理に適用するには、(必要に応じて) cancel() メソッドを呼び出し、もう一度 start() メソッドを呼び出して、シェーダの処理を再開します。

シェーダ操作の実行中、target オブジェクトの値は変わりません。操作が終了すると (非同期モードで complete イベントが送出されると)、結果全体が一度に target オブジェクトに書き込まれます。target オブジェクトが BitmapData インスタンスで、操作が終了する前にその dispose() メソッドが呼び出された場合でも、非同期モードでは complete イベントが送出されます。ただし、結果データは破棄状態にあるため、BitmapData オブジェクトには書き込まれません。

パラメータ

waitForCompletion:Boolean (default = false) — シェーダの実行をバックグラウンド (false、デフォルト) で行うか、プログラムのメイン実行 (true) で行うかを指定します。


イベント
complete:ShaderEventstart() メソッドを呼び出して waitForCompletion 引数に true を渡した場合は、操作の終了時に送出されます。

例外
ArgumentError target プロパティが null または BitmapData、ByteArray、Vector でない場合。<Number> インスタンスです。
 
ArgumentError — シェーダが指定したイメージ入力が存在しない場合。
 
ArgumentError — ByteArray または Vector の場合。<Number> インスタンスが入力として使用され、ShaderInput の width および height プロパティが指定されていない、または指定された値が入力オブジェクトのデータ量と一致しない場合。詳しくは、ShaderInput.input プロパティを参照してください。
イベントの詳細
complete イベント
イベントオブジェクトの型: flash.events.ShaderEvent
プロパティ ShaderEvent.type = flash.events.ShaderEvent.COMPLETE

言語バージョン: ActionScript 3.0
ランタイムバージョン: Flash Player 10, AIR 1.5

ShaderJob を非同期的に実行したときに、シェーダによるデータ処理が終了すると送出されます。ShaderJob インスタンスを非同期的に実行するには、start() メソッドを呼び出して waitForCompletion パラメータに値として false を渡します。

type プロパティ (complete イベントオブジェクト) の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
bitmapData終了した処理の結果を含む BitmapData オブジェクトです(またはターゲットが BitmapData オブジェクトでなかった場合は、null)。
byteArray終了した処理の結果を含む ByteArray オブジェクトです(またはターゲットが ByteArray オブジェクトでなかった場合は、null)。
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで event オブジェクトをアクティブに処理しているオブジェクトです。
target完了を報告する ShaderJob オブジェクトです。
vectorメソッド 結果を含む Vector.<Number> インスタンスです(またはターゲットが Vector.<Number> インスタンスでなかった場合は、null)。




 

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/display/ShaderJob.html