パッケージ | flash.display |
クラス | public class Stage3D |
継承 | Stage3D EventDispatcher Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 11, AIR 3 |
Stage3D により、Context3D
クラスを使用してレンダリングされたコンテンツの表面の高性能なレンダリングが可能です。可能な場合、この表面はグラフィック処理ユニット(GPU)を使用します。ランタイムステージは、Stage3D
オブジェクトの固定数を提供します。インスタンスの数はデバイスの種類によって異なります。通常、デスクトップコンピューターには Stage3D インスタンスが用意されています。
Stage3D
ビューポイントに描画されるコンテンツは、事前に定義された順番で、表示されている他のグラフィックオブジェクトと合成されます。一番奥にあるサーフェスは、StageVideo
の各サーフェスです。次が Stage3D
で、最後に従来の Flash 表示オブジェクトのコンテンツがレンダリングされ、一番上に表示されます。StageVideo および Stage3D レイヤーのレンダリングには透明効果が適用されないので、他の Stage3D または StageVideo ビューポートが背面に配置されている場合、それらはまったく見えません。表示リストのコンテンツは、透明度ありでレンダリングされます。
注意:StageVideo クラスを使用してビデオを再生する場合などに、Stage3D オブジェクトの visible
プロパティを使用して、一時的に表示からオブジェクトを削除できます。
Stage3D
オブジェクトは、Player ステージから stage3Ds
メンバーを使用して取得されます。Stage3D インスタンスを使用して、関連のレンダリングコンテキストを要求し、ランタイムステージ上に表示を位置付けます。
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
context3D : Context3D [読み取り専用]
この Stage3D インスタンスに関連付けられた Context3D オブジェクトです。 | Stage3D | ||
visible : Boolean
この Stage3D オブジェクトを表示するかどうかを指定します。 | Stage3D | ||
x : Number
ステージ上の Stage3D 表示の水平座標(ピクセル単位)です。 | Stage3D | ||
y : Number
ステージ上の Stage3D 表示の垂直座標(ピクセル単位)です。 | Stage3D |
メソッド | 定義元 | ||
---|---|---|---|
Stage3D() | Stage3D | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | ||
イベントをイベントフローに送出します。 | EventDispatcher | ||
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | ||
この Stage3D インスタンスの Context3D オブジェクトの作成を要求します。 | Stage3D | ||
この Stage3D インスタンスの Context3D オブジェクトの作成を要求します。 | Stage3D | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object | ||
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher |
イベント | 概要 | 定義元 | ||
---|---|---|---|---|
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。 | EventDispatcher | |||
レンダリングコンテキストが作成されると送出されます。 | Stage3D | |||
[ブロードキャストイベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。 | EventDispatcher | |||
レンダリングコンテキストの要求が失敗すると送出されます。 | Stage3D |
context3D | プロパティ |
context3D:Context3D
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 11, AIR 3 |
この Stage3D インスタンスに関連付けられた Context3D オブジェクトです。
このプロパティの初期値は null
です。この Stage3D オブジェクト用の Context3D インスタンスを作成するには、context3DCreate
イベント用のイベントリスナーを追加してから、requestContext3D
メソッドを呼び出します。Context3D オブジェクトが作成されると、リスナーが呼び出されます。
実装
public function get context3D():Context3D
関連する API エレメント
visible | プロパティ |
x | プロパティ |
x:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 11, AIR 3 |
ステージ上の Stage3D 表示の水平座標(ピクセル単位)です。
このプロパティのデフォルト値はゼロです。
実装
public function get x():Number
public function set x(value:Number):void
例外
ArgumentError — この位置が [-8191..8191] の間でない場合。
|
y | プロパティ |
y:Number
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 11, AIR 3 |
ステージ上の Stage3D 表示の垂直座標(ピクセル単位)です。
このプロパティのデフォルト値はゼロです。
実装
public function get y():Number
public function set y(value:Number):void
例外
ArgumentError — この位置が [-8191..8191] の間でない場合。
|
Stage3D | () | コンストラクター |
public function Stage3D()
requestContext3D | () | メソッド |
public function requestContext3D(context3DRenderMode:String = "auto", profile:String = "baseline"):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 11, AIR 3 |
この Stage3D インスタンスの Context3D オブジェクトの作成を要求します。
この関数を呼び出す前に、context3DCreate
イベントのイベントリスナーを追加してください。追加しないと、ランタイムで例外がスローされます。
デバイスの喪失に関する重要事項:GPU ハードウェアがアプリケーションで利用できなくなると、GPU デバイスの喪失が発生します。GPU デバイスが喪失すると、Context3D オブジェクトは破棄されます。GPU デバイスの喪失は様々な理由で発生します。例えば、モバイルデバイスのバッテリー残量がなくなった場合や、Windows デバイスの画面がロックされた場合などです。GPU が再度利用できるようになると、ランタイムによって新しい Context3D インスタンスが作成され、別の context3DCreate
イベントが送出されます。デバイスの喪失が発生するたびに、アプリケーションのすべてのアセットを再読み込みして、レンダリングコンテキスト状態をリセットする必要があります。
デバイスの喪失やコンテキストの再生の可能性に対処するようアプリケーションのロジックを設計してください。context3DCreate
イベントリスナーは削除しないでください。アプリケーションで繰り返してはいけないイベントに応じてアクションを実行しないでください。例えば、タイマーイベントはデバイスが喪失すると重複するので、タイマーイベントを処理するための匿名の関数を追加しないでください。アプリケーションのデバイスの喪失処理をテストするために、Context3D オブジェクトの dispose()
メソッドを呼び出して、デバイスの喪失をシミュレートできます。
次の例は、Context3D のレンダリングコンテキストを要求する方法を示したものです。
if( stage.stage3Ds.length > 0 ) { var stage3D:Stage3D = stage.stage3Ds[0]; stage3D.addEventListener( Event.CONTEXT3D_CREATE, myContext3DHandler ); stage3D.requestContext3D( ); } function myContext3DHandler ( event : Event ) : void { var targetStage3D : Stage3D = event.target as Stage3D; InitAll3DResources( targetStage3D.context3D ); StartRendering( targetStage3D.context3D ); }
パラメーター
context3DRenderMode:String (default = "auto ") — 要求するレンダリングコンテキストの種類。デフォルトは Context3DRenderMode.AUTO で、ハードウェアアクセラレーションが可能な場合はランタイムでハードウェアアクセラレーションを利用した Context3D が作成され、ハードウェアアクセラレーションが可能でない場合はソフトウェアを利用した Context3D が作成されます。ソフトウェアレンダリングコンテキストを要求するには、Context3DRenderMode.SOFTWARE を使用します。ソフトウェアレンダリングはモバイルデバイスでは使用できません。ソフトウェアレンダリングは、Context3DProfile.BASELINE および Context3DProfile.BASELINE_CONSTRAINED でのみ使用できます。
| |
profile:String (default = "baseline ") — (AIR 3.4 以降)Flash Player での低性能 GPU のサポート範囲を指定します。デフォルトは Context3DProfile.BASELINE です。これは、以前のリリースで使用されたものと同様の Context3D インスタンスを返します。すべての使用可能なプロファイルについて詳細は、次を参照してください。 flash.display3D.Context3DProfile .
|
イベント
context3DCreate: — 要求されたレンダリングコンテキストが正常に完了すると送出されます。
| |
error: — 要求されたレンダリングコンテキストを作成できない場合に送出されます。
|
例外
Error — この Stage3D オブジェクトに context3DCreate イベントのリスナーが追加されていない場合。
| |
ArgumentError — 前回の呼び出しが完了する前に、このメソッドが別の context3DRenderMode で再度呼び出された場合。
|
関連する API エレメント
requestContext3DMatchingProfiles | () | メソッド |
public function requestContext3DMatchingProfiles(profiles:Vector.<String>):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 12, AIR 4 |
この Stage3D インスタンスの Context3D オブジェクトの作成を要求します。
この関数を呼び出す前に、context3DCreate
イベントのイベントリスナーを追加してください。追加しないと、ランタイムで例外がスローされます。
デバイスの喪失に関する重要事項:GPU ハードウェアがアプリケーションで利用できなくなると、GPU デバイスの喪失が発生します。GPU デバイスが喪失すると、Context3D オブジェクトは破棄されます。GPU デバイスの喪失は様々な理由で発生します。例えば、モバイルデバイスのバッテリー残量がなくなった場合や、Windows デバイスの画面がロックされた場合などです。GPU が再度利用できるようになると、ランタイムによって新しい Context3D インスタンスが作成され、別の context3DCreate
イベントが送出されます。デバイスの喪失が発生するたびに、アプリケーションのすべてのアセットを再読み込みして、レンダリングコンテキスト状態をリセットする必要があります。
デバイスの喪失やコンテキストの再生の可能性に対処するようアプリケーションのロジックを設計してください。context3DCreate
イベントリスナーは削除しないでください。アプリケーションで繰り返してはいけないイベントに応じてアクションを実行しないでください。例えば、タイマーイベントはデバイスが喪失すると重複するので、タイマーイベントを処理するための匿名の関数を追加しないでください。アプリケーションのデバイスの喪失処理をテストするために、Context3D オブジェクトの dispose()
メソッドを呼び出して、デバイスの喪失をシミュレートできます。
次の例は、Context3D のレンダリングコンテキストを要求する方法を示したものです。
if( stage.stage3Ds.length > 0 ) { var stage3D:Stage3D = stage.stage3Ds[0]; stage3D.addEventListener( Event.CONTEXT3D_CREATE, myContext3DHandler ); stage3D.requestContext3DMatchingProfiles(Vector.<string>([Context3DProfile.BASELINE, Context3DProfile.BASELINE_EXTENDED])); } function myContext3DHandler ( event : Event ) : void { var targetStage3D : Stage3D = event.target as Stage3D; if(targetStage3D.context3D.profile.localeCompare(Context3DProfile.BASELINE) == 0) { InitAll3DResources( targetStage3D.context3D ); } StartRendering( targetStage3D.context3D );
パラメーター
profiles:Vector.<String> — (AIR 3.4 以降)開発者が Flash プログラムで使用するプロファイル配列です。開発者が Stage3D.requestContext3DMatchingProfiles にプロファイル配列を渡すとき、ハードウェア機能に応じてその配列内の高いレベルのプロファイルに基づく Context3D を取得します。レンダリングモードが「自動」に設定されるので、パラメーターは省略されます。
|
イベント
context3DCreate: — 要求されたレンダリングコンテキストが正常に完了すると送出されます。
| |
error: — 要求されたレンダリングコンテキストを作成できない場合に送出されます。ハードウェアが使用できない場合、ソフトウェア context3d は作成されません。
|
例外
Error — この Stage3D オブジェクトに context3DCreate イベントのリスナーが追加されていない場合。
| |
ArgumentError — 前回の呼び出しが完了する前にこのメソッドが呼び出される場合。
| |
ArgumentError — 配列のアイテムが flash.display3D.Context3DProfile でない場合。
|
関連する API エレメント
context3DCreate | イベント |
flash.events.Event
プロパティ Event.type =
flash.events.Event.CONTEXT3D_CREATE
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 11, AIR 3 |
レンダリングコンテキストが作成されると送出されます。
Event.CONTEXT3D_CREATE
定数は、context3Dcreate
イベントオブジェクトの type
プロパティの値を定義します。 このイベントは Stage3D オブジェクトでのみ発生します。このイベントは、Stage3D.requestContext3D の呼び出し、または Stage3D オブジェクトにバインドされた Context3D の リセット(OS によってトリガーされます)に応じて発生します。Stage3D.context3D プロパティを調べ、新規作成された Context3D オブジェクトを取得します。
関連する API エレメント
error | イベント |
flash.events.ErrorEvent
プロパティ ErrorEvent.type =
flash.events.ErrorEvent.ERROR
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 11, AIR 3 |
レンダリングコンテキストの要求が失敗すると送出されます。
type
プロパティ(error
イベントオブジェクト)の値を定義します。
このイベントには、次のプロパティがあります。
プロパティ | 値 |
---|---|
bubbles | false |
cancelable | false は、キャンセルするデフォルトの動作がないことを示します。 |
currentTarget | イベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。 |
target | ネットワーク操作エラーが発生したオブジェクトです。 |
text | エラーメッセージとして表示されるテキストです。 |
関連する API エレメント
Tue Jun 12 2018, 10:34 AM Z