包 | 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 视口。显示列表内容采用透明度方式渲染。
注意:您可以使用 Stage3D 对象的 visible
属性将其从显示中暂时删除,例如,当使用 StageVideo 类播放视频时。
Stage3D
对象使用其 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 | 属性 |
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
事件侦听器。请不要执行响应应用程序中不应重复的事件的操作。例如,请不要添加匿名功能来处理 timer 事件,因为设备丢失后可能会重复这些事件。若要测试设备丢失后应用程序的处理情况,则可通过调用 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 ,如果可能,运行时将为该值创建硬件加速上下文,否则转向软件加速功能。使用 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 — 如果没有 context3DCreate 事件的侦听器添加到此 Stage3D 对象中。
| |
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
事件侦听器。请不要执行响应应用程序中不应重复的事件的操作。例如,请不要添加匿名功能来处理 timer 事件,因为设备丢失后可能会重复这些事件。若要测试设备丢失后应用程序的处理情况,则可通过调用 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。rendermode 会设为“AUTO”,因此将忽略该参数。
|
事件
context3DCreate: — 当请求的渲染上下文成功完成后调度。
| |
error: — 当无法创建请求的渲染上下文时调度。如果不存在该硬件,它不会创建软件 context3d。
|
引发
Error — 如果没有 context3DCreate 事件的侦听器添加到此 Stage3D 对象中。
| |
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 的重置时引发此事件。检查 Stage3D.context3D 属性以获取新创建的 Context3D 对象。
相关 API 元素
error | 事件 |
flash.events.ErrorEvent
属性 ErrorEvent.type =
flash.events.ErrorEvent.ERROR
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11, AIR 3 |
当请求渲染上下文失败时调度。
定义error
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 发生网络操作失败的对象。 |
text | 要显示为错误消息的文本。 |
相关 API 元素
Tue Jun 12 2018, 11:04 AM Z