| パッケージ | flash.display |
| クラス | public class ShaderJob |
| 継承 | ShaderJob EventDispatcher Object |
| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
シェーダをスタンドアローンモードで使用する主な理由が 2 つあります。
shader プロパティ (またはコンストラクタパラメータ) は、操作に使用するシェーダを表す Shader インスタンスを指定します。シェーダに必要なパラメータや入力を指定するには、関連する ShaderParameter や ShaderInput インスタンスを使用します。
ShaderJob 操作の実行前に、結果の書き込み先のオブジェクトを target プロパティの値として設定します。シェーダ操作が終了すると、結果が target オブジェクトに書き込まれます。
バックグラウンドでのシェーダ操作を開始するには、start() メソッドを呼び出します。操作が終了すると、結果が target オブジェクトに書き込まれます。その時点で、ShaderJob インスタンスは complete イベントを送出し、結果が出ていることをリスナーに通知します。
シェーダをバックグラウンドで実行せずに同期的に実行するには、start() メソッドを呼び出して true を引数として渡します。シェーダはメイン実行のスレッドで実行され、この操作が完了するまでコードが一時停止します。終了すると、結果が target オブジェクトに書き込まれます。その後にアプリケーションの実行が次のコード行から続行されます。
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
![]() | constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。 | Object | |
| height : int
ByteArray または Vector の場合は、target の結果データの高さです。<Number> インスタンスです。 | ShaderJob | ||
| progress : Number [読み取り専用]
実行中のシェーダの進行状況です。 | ShaderJob | ||
![]() | prototype : Object [静的]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。 | Object | |
| shader : Shader
操作に使用したシェーダです。 | ShaderJob | ||
| target : Object
シェーダ操作の結果が書き込まれるオブジェクトです。 | ShaderJob | ||
| width : int
ByteArray または Vector の場合は、target の結果データの幅です。<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 | |
![]() |
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher | |
| イベント | 概要 | 定義元 | ||
|---|---|---|---|---|
![]() | [ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | ||
| ShaderJob を非同期的に実行したときに、シェーダによるデータ処理が終了すると送出されます。 | ShaderJob | |||
![]() | [ブロードキャスト イベント] 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 パラメータの値に従って、シェーダ操作を同期モードまたは非同期モードで開始します。
waitForCompletion が false (デフォルト) の場合は、非同期モードになり、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: — start() メソッドを呼び出して waitForCompletion 引数に true を渡した場合は、操作の終了時に送出されます。 |
ArgumentError — target プロパティが null または BitmapData、ByteArray、Vector でない場合。<Number> インスタンスです。
| |
ArgumentError — シェーダが指定したイメージ入力が存在しない場合。
| |
ArgumentError — ByteArray または Vector の場合。<Number> インスタンスが入力として使用され、ShaderInput の width および height プロパティが指定されていない、または指定された値が入力オブジェクトのデータ量と一致しない場合。詳しくは、ShaderInput.input プロパティを参照してください。
|
| complete | イベント |
flash.events.ShaderEventflash.events.ShaderEvent.COMPLETE| 言語バージョン: | ActionScript 3.0 |
| ランタイムバージョン: | Flash Player 10, AIR 1.5 |
ShaderJob を非同期的に実行したときに、シェーダによるデータ処理が終了すると送出されます。ShaderJob インスタンスを非同期的に実行するには、start() メソッドを呼び出して waitForCompletion パラメータに値として false を渡します。
type プロパティ (complete イベントオブジェクト) の値を定義します。
このイベントには、次のプロパティがあります。
| プロパティ | 値 |
|---|---|
bubbles | false |
bitmapData | 終了した処理の結果を含む BitmapData オブジェクトです(またはターゲットが BitmapData オブジェクトでなかった場合は、null)。 |
byteArray | 終了した処理の結果を含む ByteArray オブジェクトです(またはターゲットが ByteArray オブジェクトでなかった場合は、null)。 |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | 完了を報告する ShaderJob オブジェクトです。 |
vector | メソッド 結果を含む Vector.<Number> インスタンスです(またはターゲットが Vector.<Number> インスタンスでなかった場合は、null)。 |
このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート
現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/display/ShaderJob.html