包 | flash.display |
类 | public class Stage |
继承 | Stage DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
对于在浏览器中(使用 Flash® Player)运行的 SWF 内容,Stage 表示显示 Flash 内容的整个区域。对于在桌面操作系统上的 AIR 中运行的内容,每个 NativeWindow 对象都有一个对应的 Stage 对象。
无法以全局方式访问 Stage 对象。而是需要利用 DisplayObject 实例的stage
属性进行访问。
Stage 类具有多个祖代类 -- DisplayObjectContainer、InteractiveObject、DisplayObject 和 EventDispatcher,属性和方法便是从这些类继承而来的。从这些继承的许多属性和方法不适用于 Stage 对象,或在调用 Stage 类时需要安全检查。需要安全检查的属性和方法被记录为 Stage 类的一部分。
此外,下面的继承属性不适用于 Stage 对象。如果尝试设置这些属性,便会引发 IllegalOperationError。这些属性通常可以读取,但是由于无法进行设置,所以它们将始终包含默认值。
-
accessibilityProperties
-
alpha
-
blendMode
-
cacheAsBitmap
-
contextMenu
-
filters
-
focusRect
-
loaderInfo
-
mask
-
mouseEnabled
-
name
-
opaqueBackground
-
rotation
-
scale9Grid
-
scaleX
-
scaleY
-
scrollRect
-
tabEnabled
-
tabIndex
-
transform
-
visible
-
x
-
y
一些您可能期望成为 Stage 类的一部分的事件(例如 enterFrame
、exitFrame
、frameConstructed
和 render
)不能是 Stage 事件,因为不能保证在使用这些事件的每种情况下对 Stage 对象的引用都会存在。由于这些事件无法由 Stage 对象进行调度,而是由每个 DisplayObject 实例调度,因此这就意味着您可以向任何 DisplayObject 实例添加事件侦听器来侦听这些事件。这些事件(DisplayObject 类的一部分)称为广播事件,以使其与针对特定 DisplayObject 实例的事件区分开。其他两个广播事件 activate
和 deactivate
属于 DisplayObject 的超类 EventDispatcher。activate
和 deactivate
事件的行为与 DisplayObject 广播事件类似,不过,这两个事件不仅可由所有 DisplayObject 实例进行调度,还可由所有 EventDispatcher 实例和其他的 EventDispatcher 子类实例进行调度。有关广播事件的详细信息,请参阅 DisplayObject 类。
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
accessibilityImplementation : AccessibilityImplementation
InteractiveObject 实例的当前辅助功能实现 (AccessibilityImplementation)。 | InteractiveObject | ||
accessibilityProperties : AccessibilityProperties
此显示对象的当前辅助功能选项。 | DisplayObject | ||
align : String
一个 StageAlign 类中指定舞台在 Flash Player 或浏览器中的对齐方式的值。 | Stage | ||
allowsFullScreen : Boolean [只读]
指定此舞台是否允许使用全屏模式。
| Stage | ||
allowsFullScreenInteractive : Boolean [只读]
指定此舞台是否允许使用全屏文本输入模式
| Stage | ||
alpha : Number
表示指定对象的 Alpha 透明度值。 | DisplayObject | ||
autoOrients : Boolean
指定当设备方向更改时舞台是否自动更改方向。 | Stage | ||
blendMode : String
BlendMode 类中的一个值,用于指定要使用的混合模式。 | DisplayObject | ||
blendShader : Shader [只写]
设置用于混合前景和背景的着色器。 | DisplayObject | ||
browserZoomFactor : Number [只读]
指定浏览器缩放系数。 | Stage | ||
cacheAsBitmap : Boolean
如果设置为 true,则 Flash 运行时将缓存显示对象的内部位图表示形式。 | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
如果为非 null,则 Matrix 对象会定义显示对象在 cacheAsBitmap 设置为 true 时的呈现方式。 | DisplayObject | ||
color : uint
SWF 背景颜色。 | Stage | ||
colorCorrection : String
控制用于显示的 Flash 运行时颜色校正。 | Stage | ||
colorCorrectionSupport : String [只读]
指定当前运行 Flash 运行时的操作系统是否支持颜色校正,以及 Flash 运行时是否可以读取并了解主(主要)监视器的颜色配置文件。 | Stage | ||
constructor : * | Stage | ||
contentsScaleFactor : Number [只读]
指定舞台的有效像素缩放系数。 | Stage | ||
contextMenu : NativeMenu
指定与此对象相关联的上下文菜单。 | InteractiveObject | ||
deviceOrientation : String [只读]
设备的物理方向。 | Stage | ||
displayState : String
用于指定要使用哪个显示状态的 StageDisplayState 类的值。 | Stage | ||
doubleClickEnabled : Boolean
指定此对象是否接收 doubleClick 事件。 | InteractiveObject | ||
filters : Array
包含当前与显示对象关联的每个滤镜对象的索引数组。 | DisplayObject | ||
focus : InteractiveObject
具有键盘焦点的交互式对象;如果没有设置焦点,或者具有焦点的对象属于调用对象无权访问的安全沙箱,则为 null。 | Stage | ||
focusRect : Object
指定此对象是否显示焦点矩形。 | InteractiveObject | ||
frameRate : Number
获取并设置舞台的帧速率。 | Stage | ||
fullScreenHeight : uint [只读]
返回变为全屏大小时使用的显示器高度(如果立即进入该状态)。 | Stage | ||
fullScreenSourceRect : Rectangle
设置 Flash 运行时以将特定的舞台区域放大到全屏模式。 | Stage | ||
fullScreenWidth : uint [只读]
返回变为全屏大小时使用的显示器宽度(如果立即进入该状态)。 | Stage | ||
height : Number [覆盖]
表示显示对象的高度,以像素为单位。 | Stage | ||
loaderInfo : LoaderInfo [只读]
返回一个 LoaderInfo 对象,其中包含加载此显示对象所属的文件的相关信息。 | DisplayObject | ||
mask : DisplayObject
调用显示对象被指定的 mask 对象遮罩。 | DisplayObject | ||
metaData : Object
如果元数据是通过 PlaceObject4 标记与此 DisplayObject 的实例一起存储在 SWF 文件中的,则获取 DisplayObject 实例的元数据对象。 | DisplayObject | ||
mouseChildren : Boolean [覆盖]
确定对象的子级是否支持鼠标或用户输入设备。 | Stage | ||
mouseEnabled : Boolean
指定此对象是否接收鼠标或其他用户输入、消息。 | InteractiveObject | ||
mouseLock : Boolean
设置为 true 可以启用鼠标锁定。 | Stage | ||
mouseX : Number [只读]
表示此鼠标或用户输入设备位置的 x 坐标,以像素为单位。 | DisplayObject | ||
mouseY : Number [只读]
表示此鼠标或用户输入设备位置的 y 坐标,以像素为单位。 | DisplayObject | ||
name : String
表示 DisplayObject 的实例名称。 | DisplayObject | ||
nativeWindow : NativeWindow [只读]
对包含此舞台的 NativeWindow 对象的引用。 | Stage | ||
needsSoftKeyboard : Boolean
指定当该 InteractiveObject 实例获得焦点时,是否显示虚拟键盘(显示在屏幕上的软键盘)。 | InteractiveObject | ||
numChildren : int [覆盖] [只读]
返回此对象的子项数目。 | Stage | ||
opaqueBackground : Object
指定显示对象是否由于具有某种背景颜色而不透明。 | DisplayObject | ||
orientation : String [只读]
当前舞台方向。 | Stage | ||
parent : DisplayObjectContainer [只读]
表示包含此显示对象的 DisplayObjectContainer 对象。 | DisplayObject | ||
quality : String
StageQuality 类中的一个用于指定使用哪种呈现品质的值。 | Stage | ||
root : DisplayObject [只读]
对于加载的 SWF 文件中的显示对象,root 属性是此 SWF 文件所表示的显示列表树结构部分中的顶级显示对象。 | DisplayObject | ||
rotation : Number
表示 DisplayObject 实例距其原始方向的旋转程度,以度为单位。 | DisplayObject | ||
rotationX : Number
表示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 x 轴旋转(以度为单位)。 | DisplayObject | ||
rotationY : Number
表示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 y 轴旋转(以度为单位)。 | DisplayObject | ||
rotationZ : Number
表示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 z 轴旋转(以度为单位)。 | DisplayObject | ||
scale9Grid : Rectangle
当前有效的缩放网格。 | DisplayObject | ||
scaleMode : String
一个 StageScaleMode 类中指定要使用哪种缩放模式的值。 | Stage | ||
scaleX : Number
表示从注册点开始应用的对象的水平缩放比例(百分比)。 | DisplayObject | ||
scaleY : Number
表示从对象注册点开始应用的对象的垂直缩放比例(百分比)。 | DisplayObject | ||
scaleZ : Number
表示从对象的注册点开始应用的对象的深度缩放比例(百分比)。 | DisplayObject | ||
scrollRect : Rectangle
显示对象的滚动矩形范围。 | DisplayObject | ||
showDefaultContextMenu : Boolean
指定是显示还是隐藏 Flash 运行时上下文菜单中的默认项。 | Stage | ||
softKeyboard : String
控制软键盘的外观。 | InteractiveObject | ||
softKeyboardInputAreaOfInterest : Rectangle
定义当显示软键盘时应在屏幕上保留的区域(在 iOS 上不支持)。 | InteractiveObject | ||
softKeyboardRect : Rectangle [只读]
一个指定目前被软键盘覆盖的舞台区域的矩形。 | Stage | ||
stage : Stage [只读]
显示对象的舞台。 | DisplayObject | ||
stage3Ds : Vector.<Stage3D> [只读]
可用于显示三维内容的 Stage3D 对象列表。 | Stage | ||
stageFocusRect : Boolean
指定对象在具有焦点时是否显示加亮的边框。 | Stage | ||
stageHeight : int
舞台的当前高度(以像素为单位)。 | Stage | ||
stageVideos : Vector.<StageVideo> [只读]
播放外部视频可以使用的 StageVideo 对象列表。 | Stage | ||
stageWidth : int
指定舞台的当前宽度(以像素为单位)。 | Stage | ||
supportedOrientations : Vector.<String> [只读]
当前设备支持的方向。 | Stage | ||
supportsOrientationChange : Boolean [静态] [只读]
应用程序是否支持更改舞台方向(和设备旋转)。 | Stage | ||
tabChildren : Boolean [覆盖]
确定对象的子项是否支持 Tab 键。 | Stage | ||
tabEnabled : Boolean
指定此对象是否遵循 Tab 键顺序。 | InteractiveObject | ||
tabIndex : int
指定 SWF 文件中的对象按 Tab 键顺序排列。 | InteractiveObject | ||
textSnapshot : flash.text:TextSnapshot [覆盖] [只读]
返回此 DisplayObjectContainer 实例的 TextSnapshot 对象。 | Stage | ||
transform : flash.geom:Transform
一个对象,具有与显示对象的矩阵、颜色转换和像素范围有关的属性。 | DisplayObject | ||
visible : Boolean
显示对象是否可见。 | DisplayObject | ||
vsyncEnabled : Boolean
这表示我们可以对其启用/禁用 vsync 的基本图形解决方案的 vsync 的当前状态,以便我们将立即呈现,而无需等待下一个 VSYNC 的状态。 | Stage | ||
width : Number [覆盖]
表示显示对象的宽度,以像素为单位。 | Stage | ||
wmodeGPU : Boolean [只读]
表示 GPU 合成是否可用及是否正在使用中。 | Stage | ||
x : Number
表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标。 | DisplayObject | ||
y : Number
表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 y 坐标。 | DisplayObject | ||
z : Number
表示 DisplayObject 实例相对于 3D 父容器沿 z 轴的 z 坐标位置。 | DisplayObject |
方法 | 由以下参数定义 | ||
---|---|---|---|
[覆盖]
将一个 DisplayObject 子实例添加到该 DisplayObjectContainer 实例中。 | Stage | ||
[覆盖]
将一个 DisplayObject 子实例添加到该 DisplayObjectContainer 实例中。 | Stage | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void [覆盖]
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | Stage | ||
表示安全限制是否会导致出现以下情况:在列表中忽略了使用指定 point 点调用 DisplayObjectContainer.getObjectsUnderPoint() 方法时返回的所有显示对象。 | DisplayObjectContainer | ||
将键盘焦点设置为由 objectToFocus 指定的交互式对象,焦点方向由 direction 参数指定。 | Stage | ||
确定指定显示对象是 DisplayObjectContainer 实例的子项还是该实例本身。 | DisplayObjectContainer | ||
[覆盖]
将事件调度到事件流中。 | Stage | ||
返回一个矩形,该矩形定义相对于 targetCoordinateSpace 对象坐标系的显示对象区域。 | DisplayObject | ||
返回位于指定索引处的子显示对象实例。 | DisplayObjectContainer | ||
返回具有指定名称的子显示对象。 | DisplayObjectContainer | ||
返回 DisplayObject 的 child 实例的索引位置。 | DisplayObjectContainer | ||
返回对象的数组,这些对象位于指定点下,并且是该 DisplayObjectContainer 实例的子项(或孙子项,依此类推)。 | DisplayObjectContainer | ||
返回一个矩形,该矩形根据 targetCoordinateSpace 参数定义的坐标系定义显示对象的边界,但不包括形状上的任何笔触。 | DisplayObject | ||
将 point 对象从舞台(全局)坐标转换为显示对象的(本地)坐标。 | DisplayObject | ||
将二维点从舞台(全局)坐标转换为三维显示对象的(本地)坐标。 | DisplayObject | ||
[覆盖]
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | Stage | ||
表示对象是否已经定义了指定的属性。 | Object | ||
计算显示对象的边框,以确定它是否与 obj 显示对象的边框重叠或相交。 | DisplayObject | ||
计算显示对象,以确定它是否与 x 和 y 参数指定的点重叠或相交。 | DisplayObject | ||
调用 invalidate() 方法,以便在出现下一个 Flash 运行时必须呈现显示列表的时机(例如,当播放头前进到一个新帧)时,向其发送提醒显示对象的信号。 | Stage | ||
确定 Stage.focus 属性是否因某些安全原因返回 null。 | Stage | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
将三维显示对象的(本地)坐标的三维点转换为舞台(全局)坐标中的二维点。 | DisplayObject | ||
将 point 对象从显示对象的(本地)坐标转换为舞台(全局)坐标。 | DisplayObject | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 DisplayObjectContainer 实例的子列表中删除指定的 child DisplayObject 实例。 | DisplayObjectContainer | ||
[覆盖]
从 DisplayObjectContainer 的子列表中指定的 index 位置删除子 DisplayObject。 | Stage | ||
从 DisplayObjectContainer 实例的子级列表中删除所有子 DisplayObject 实例。 | DisplayObjectContainer | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
显示虚拟键盘。 | InteractiveObject | ||
将舞台设置成使用指定长宽比的方向。 | Stage | ||
[覆盖]
更改现有子项在显示对象容器中的位置。 | Stage | ||
将舞台设置成指定方向。 | Stage | ||
设置循环操作动态属性的可用性。 | Object | ||
对源起于此对象的所有 MovieClip 递归停止时间轴执行。 | DisplayObjectContainer | ||
交换两个指定子对象的 Z 轴顺序(从前到后顺序)。 | DisplayObjectContainer | ||
[覆盖]
在子级列表中两个指定的索引位置,交换子对象的 Z 轴顺序(前后顺序)。 | Stage | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
返回指定对象的原始值。 | Object | ||
[覆盖]
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | Stage |
事件 | 摘要 | 由以下参数定义 | ||
---|---|---|---|---|
[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | |||
将显示对象添加到显示列表中时调度。 | DisplayObject | |||
在将显示对象直接添加到舞台显示列表或将包含显示对象的子树添加至舞台显示列表中时调度。 | DisplayObject | |||
当 Stage 对象的 browserZoomFactor 属性发生更改时调度。 | Stage | |||
当用户从文本上下文菜单中选择“清除”(或“删除”)时调度。 | InteractiveObject | |||
用户在同一 InteractiveObject 上按下并释放用户指针设备的主按钮时调度。 | InteractiveObject | |||
当用户手势触发 AIR 应用程序中与此交互式对象相关联的上下文菜单时调度。 | InteractiveObject | |||
在用户为复制操作激活特定于平台的加速键组合或从文本上下文菜单中选择“复制”时调度。 | InteractiveObject | |||
在用户为剪切操作激活特定于平台的加速键组合或从文本上下文菜单中选择“剪切”时调度。 | InteractiveObject | |||
[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | |||
如果 InteractiveObject 的 doubleClickEnabled 标志设置为 true,当用户在该对象上快速连续按下两次并释放指针设备的主按钮时调度。 | InteractiveObject | |||
[播放事件] 播放头进入新帧时调度。 | DisplayObject | |||
[广播事件] 播放头退出当前帧时调度。 | DisplayObject | |||
显示对象获得焦点后调度。 | InteractiveObject | |||
显示对象失去焦点后调度。 | InteractiveObject | |||
[广播事件] 在帧显示对象的构造函数运行之后但在帧脚本运行之前调度。 | DisplayObject | |||
当 Stage 对象进入或离开全屏模式时调度。 | Stage | |||
当用户使用 InteractiveObject 实例沿触摸面边缘创建接触点时调度(如在 Siri Remote for Apple TV 上沿触摸面边缘轻击)。有些设备也可能将这种接触解释为多个触摸事件的组合。 | InteractiveObject | |||
当用户在启用触摸设备上的同一 InteractiveObject 实例上按下两个接触点时(例如,在配有触摸屏的移动电话或平板电脑上的显示对象上按下和释放两个手指)调度。 | InteractiveObject | |||
当用户在启用触摸的设备上的 InteractiveObject 实例上移动接触点时(例如,在配有触摸屏的移动电话或平板电脑上的显示对象上从左向右移动手指)调度。 | InteractiveObject | |||
当用户在接触点处使用 InteractiveObject 实例执行旋转手势时(例如,将两个手指放在屏幕上,然后在配有触摸屏的移动电话或平板电脑上的显示对象上旋转这两个手指)调度。 | InteractiveObject | |||
当用户在接触点处使用 InteractiveObject 实例执行滑动手势(例如,在配有触摸屏的移动电话或平板电脑上用三根手指触摸屏幕,然后在一个显示对象上平行移动这三根手指)时调度。 | InteractiveObject | |||
当用户使用 InteractiveObject 实例创建接触点,然后点击启用触屏的设备时(例如,将几个手指放在显示对象上以打开菜单,然后点击一个手指在配有触摸屏的移动电话或平板电脑上选择一个菜单项)调度。 | InteractiveObject | |||
当用户在接触点处使用 InteractiveObject 实例执行缩放手势操作时(例如,将两个手指放在屏幕上,然后在配有触摸屏的移动电话或平板电脑上的显示对象上快速分开手指)调度。 | InteractiveObject | |||
此事件被调度到任何支持使用 IME 进行内联输入的客户端应用程序 | InteractiveObject | |||
用户按下某个键时调度。 | InteractiveObject | |||
用户尝试使用键盘导航更改焦点时调度。 | InteractiveObject | |||
用户释放某个键时调度。 | InteractiveObject | |||
当用户在同一 InteractiveObject 上按下并释放用户指针设备的中间按钮时调度。 | InteractiveObject | |||
当用户在 InteractiveObject 实例上按下指针设备的中间按钮时调度。 | InteractiveObject | |||
当用户在 InteractiveObject 实例上释放指针设备按钮时调度。 | InteractiveObject | |||
当用户在 InteractiveObject 实例上按下指针设备按钮时调度。 | InteractiveObject | |||
用户尝试使用指针设备更改焦点时调度。 | InteractiveObject | |||
当指针移出舞台区域时由 Stage 对象调度。 | Stage | |||
用户移动 InteractiveObject 上的指针设备时调度。 | InteractiveObject | |||
用户将指针设备从 InteractiveObject 实例上移开时调度。 | InteractiveObject | |||
用户将指针设备移动到 InteractiveObject 实例上时调度。 | InteractiveObject | |||
当用户在 InteractiveObject 实例上释放指针设备按钮时调度。 | InteractiveObject | |||
当鼠标滚轮滚动到 InteractiveObject 实例上时调度。 | InteractiveObject | |||
当用户释放拖动手势时由拖动启动器 InteractiveObject 调度。 | InteractiveObject | |||
在将拖动对象放置到目标上且已通过对 DragManager.acceptDragDrop() 的调用接受该放置操作时,由目标 InteractiveObject 调度。 | InteractiveObject | |||
当拖动手势进入其边界时由 InteractiveObject 调度。 | InteractiveObject | |||
当拖动手势离开其边界时由 InteractiveObject 调度。 | InteractiveObject | |||
当拖动手势保持在其边界内时,由 InteractiveObject 持续调度。 | InteractiveObject | |||
在拖动操作开始时由在 DragManager.doDrag() 调用中指定为拖动启动器的 InteractiveObject 调度。 | InteractiveObject | |||
在拖动操作期间由在 DragManager.doDrag() 调用中指定为拖动启动器的 InteractiveObject 调度。 | InteractiveObject | |||
当舞台方向更改时,由 Stage 对象调度。 | Stage | |||
舞台方向开始变化后,由 Stage 对象调度。 | Stage | |||
在用户为粘贴操作激活特定于平台的加速键组合或从文本上下文菜单中选择“粘贴”时调度。 | InteractiveObject | |||
当用户将活动笔针放低经过屏幕的邻近检测阈值上时调度。 | InteractiveObject | |||
当用户将活动笔针抬高放在屏幕的邻近检测阈值上时调度。 | InteractiveObject | |||
当用户将活动笔针移动到屏幕上但仍保留在邻近检测阈值中时调度。 | InteractiveObject | |||
当用户直接将活动笔针从此 InteractiveObject 上移开但仍保留在屏幕的邻近检测阈值中时调度。 | InteractiveObject | |||
当用户直接将活动笔针移动到此 InteractiveObject 上但仍保留在屏幕的邻近检测阈值中时调度。 | InteractiveObject | |||
当用户从此 InteractiveObject 及其任一子项中移开而仍保留在屏幕的邻近检测阈值中时调度。 | InteractiveObject | |||
当用户将活动笔针从显示列表中子项的对象树中滑过此 InteractiveObject 时(而仍保留在屏幕的邻近检测阈值中)时调度。 | InteractiveObject | |||
在用户首先在 InteractiveObject 实例上按下按钮,然后将指针设备移离 InteractiveObject 实例,释放指针设备上的按钮时调度。 | InteractiveObject | |||
将要从显示列表中删除显示对象时调度。 | DisplayObject | |||
在从显示列表中直接删除显示对象或删除包含显示对象的子树时调度。 | DisplayObject | |||
[广播事件] 将要更新和呈现显示列表时调度。 | DisplayObject | |||
当 Stage 对象的 scaleMode 属性设置为 StageScaleMode.NO_SCALE 且 SWF 文件大小经过重新调整时进行调度。 | Stage | |||
当用户在同一 InteractiveObject 上按下并释放用户指针设备的右按钮时调度。 | InteractiveObject | |||
当用户在 InteractiveObject 实例上按下指针设备按钮时调度。 | InteractiveObject | |||
当用户在 InteractiveObject 实例上释放指针设备按钮时调度。 | InteractiveObject | |||
用户将指针设备从 InteractiveObject 实例上移开时调度。 | InteractiveObject | |||
用户将指针设备移动到 InteractiveObject 实例上时调度。 | InteractiveObject | |||
在用户为全选操作激活特定于平台的加速键组合或从文本上下文菜单中选择“全选”时调度。 | InteractiveObject | |||
在放开软键盘之后立即调度。 | InteractiveObject | |||
在放开软键盘之前立即调度。 | InteractiveObject | |||
在隐藏软键盘之后立即调度。 | InteractiveObject | |||
当 stageVideos 属性更改时,由 Stage 对象调度。 | Stage | |||
对象的 tabChildren 标志值发生更改时调度。 | InteractiveObject | |||
对象的 tabEnabled 标志发生更改时调度。 | InteractiveObject | |||
对象的 tabIndex 属性值发生更改时调度。 | InteractiveObject | |||
当用户输入一个或多个文本字符时调度。 | InteractiveObject | |||
当用户第一次触摸启用触摸的设备时(例如,用手指触摸配有触摸屏的移动电话或平板)调度。 | InteractiveObject | |||
当用户移除与启用触摸的设备的接触时(例如,将手指从配有触摸屏的移动电话或平板电脑上抬起)调度。 | InteractiveObject | |||
当用户触碰设备时进行调度,而且会连续调度,直到接触点被删除。 | InteractiveObject | |||
当用户将接触点从启用触摸的设备上的 InteractiveObject 实例移开时(例如,在配有触摸屏的移动电话或平板电脑上,将手指从一个显示对象拖到另一个显示对象)调度。 | InteractiveObject | |||
当用户在启用触摸的设备的 InteractiveObject 实例上移动接触点时(例如,在配有触摸屏的移动电话或平板电脑上,将手指从显示对象外的一点拖动到显示对象上的一点)调度。 | InteractiveObject | |||
当用户移动接触点,使其远离启用触摸的设备上的 InteractiveObject 实例时(例如,在配有触摸屏的移动电话或平板电脑上将一个手指从显示对象上的一点移动到显示对象外的一点)调度。 | InteractiveObject | |||
当用户在启用触摸的设备的 InteractiveObject 实例上移动接触点时(例如,在配有触摸屏的移动电话或平板电脑上,将手指从显示对象外的一点拖动到显示对象上的一点)调度。 | InteractiveObject | |||
当用户在启用触摸设备上的已启动接触的同一 InteractiveObject 实例上抬起接触点时(例如,在配有触摸屏的移动电话或平板的显示对象上的某一点处按下并释放手指)调度。 | InteractiveObject | |||
当 vsync 属性的状态更改时,由 Stage 对象调度。 | Stage |
align | 属性 |
align:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
一个 StageAlign 类中指定舞台在 Flash Player 或浏览器中的对齐方式的值。以下是有效值:
值 | 垂直对齐方式 | 水平对齐方式 |
---|---|---|
StageAlign.TOP | 顶对齐 | 居中对齐 |
StageAlign.BOTTOM | 底对齐 | 居中对齐 |
StageAlign.LEFT | 居中对齐 | 左对齐 |
StageAlign.RIGHT | 居中对齐 | 右对齐 |
StageAlign.TOP_LEFT | 顶对齐 | 左对齐 |
StageAlign.TOP_RIGHT | 顶对齐 | 右对齐 |
StageAlign.BOTTOM_LEFT | 底对齐 | 左对齐 |
StageAlign.BOTTOM_RIGHT | 底对齐 | 右对齐 |
align
属性只可用于与 Stage 所有者(主 SWF 文件)位于同一安全沙箱的对象。为避免出现这种情况,Stage 所有者可以通过调用 Security.allowDomain()
方法或 Security.alowInsecureDomain()
方法来向域的调用对象授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
实现
public function get align():String
public function set align(value:String):void
相关 API 元素
allowsFullScreen | 属性 |
allowsFullScreenInteractive | 属性 |
autoOrients | 属性 |
autoOrients:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
指定当设备方向更改时舞台是否自动更改方向。
此属性的初始值是从应用程序描述符的 autoOrients
元素派生的,默认为 false
。将该属性更改为 false
时,不能保证行为。 在某些设备上,舞台保持当前方向。在其他设备上,舞台方向更改为设备定义的“标准”方向,之后,不会再发生舞台方向更改。
AIR 配置文件支持:移动设备支持此功能,但桌面操作系统或 AIR for TV 设备不支持此功能。您可以使用 Stage.supportsOrientantionChange
属性在运行时测试是否受支持。有关在多个配置文件之间支持 API 的详细信息,请参阅 AIR 配置文件支持。
实现
public function get autoOrients():Boolean
public function set autoOrients(value:Boolean):void
相关 API 元素
browserZoomFactor | 属性 |
color | 属性 |
colorCorrection | 属性 |
colorCorrection:String
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
控制用于显示的 Flash 运行时颜色校正。只有在为监视器分配了有效的 ICC 颜色配置文件(指定设备的特定颜色属性)时,颜色校正才起作用。默认情况下,Flash 运行时尝试与其主机(通常是浏览器)的颜色校正匹配。
使用 Stage.colorCorrectionSupport
属性可确定颜色校正在当前系统和默认状态中是否可用。如果可以使用颜色校正,则将假定舞台上的所有颜色都处于 sRGB 颜色空间,这是最标准的颜色空间。在颜色校正过程中未考虑输入设备的源配置文件。不应用输入颜色校正;只将舞台输出映射到主监视器的 ICC 颜色配置文件。
通常,激活颜色管理有如下优点:可预知颜色并保持颜色的一致性、更好的转换、准确的校样以及更有效的跨媒体输出。但是请注意,由于设备相互之间或与原始图像的色域不同,因此颜色管理无法提供完美的转换。同时,尽管有颜色管理,但仍然需要自定义配置文件或编辑的配置文件。颜色配置文件取决于浏览器、操作系统 (OS)、OS 扩展、输出设备和应用程序支持。
应用颜色校正会降低 Flash 运行时的性能。Flash 运行时的颜色校正是文档样式的颜色校正,因为所有 SWF 影片都被视为带有隐式 sRGB 配置文件的文档。向显示色彩空间显示 SWF 文件(文档)时,使用 Stage.colorCorrectionSupport
属性告知 Flash 运行时正确的颜色。Flash 运行时只补尝监视器之间的差别,而不补偿输入设备(摄像头、扫描仪等)之间的差别。
三个可能的值是在 flash.display.ColorCorrection 类中具有对应常数的字符串。
“default”
:使用与主机系统相同的颜色校正。“on”
:始终执行颜色校正。“off”
:从不执行颜色校正。
实现
public function get colorCorrection():String
public function set colorCorrection(value:String):void
相关 API 元素
示例 ( 如何使用本示例 )
Stage.colorCorrection
值不是来自 ColorCorrection 类的值,则处理程序报告错误。
function addHandler(add_event:Event) { switch(stage.colorCorrection) { case ColorCorrection.ON: stage.colorCorrection = ColorCorrection.OFF; lblCMEnableState.text = "State: " + stage.colorCorrection; break; case ColorCorrection.OFF: stage.colorCorrection = ColorCorrection.DEFAULT; lblCMEnableState.text = "State: " + stage.colorCorrection; break; case ColorCorrection.DEFAULT: stage.colorCorrection = ColorCorrection.ON; lblCMEnableState.text = "State: " + stage.colorCorrection; break; default: lblCMEnableState.text = "Error."; break; }
colorCorrectionSupport | 属性 |
colorCorrectionSupport:String
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10, AIR 1.5 |
指定当前运行 Flash 运行时的操作系统是否支持颜色校正,以及 Flash 运行时是否可以读取并了解主(主要)监视器的颜色配置文件。此属性还返回主机系统(通常是浏览器)上颜色校正的默认状态。当前返回值可能是:
三个可能的值是在 flash.display.ColorCorrectionSupport 类中具有对应常数的字符串。
“unsupported”
:颜色校正不可用。“defaultOn”
:始终执行颜色校正。“defaultOff”
:从不执行颜色校正。
实现
public function get colorCorrectionSupport():String
相关 API 元素
示例 ( 如何使用本示例 )
stage.colorCorrectionSupport
以确定其是 DEFAULT_ON
还是 DEFAULT_OFF
,这两个值是来自 ColorCorrectionSupport 类的值。如果该属性是两个值中的一个,则文本字段显示当前值。否则,如果该值既不是 DEFAULT_ON
也不是 DEFAULT_OFF
,则文本字段显示“不支持”。
function addHandler(add_event:Event) { if (stage.colorCorrectionSupport == ColorCorrectionSupport.DEFAULT_ON || stage.colorCorrectionSupport == ColorCorrectionSupport.DEFAULT_OFF) { lblHasCM.text = "stage.colorCorrectionSupport: " + stage.colorCorrectionSupport; } else { lblHasCM.text = "stage.colorCorrectionSupport: unsupported"; } }
constructor | 属性 |
contentsScaleFactor | 属性 |
contentsScaleFactor:Number
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 11.5 |
指定舞台的有效像素缩放系数。在标准屏幕和 HiDPI(Retina 显示屏)屏幕上,此值为 1。当舞台呈现在 HiDPI 屏幕上时,像素分辨率会增大一倍;即使舞台缩放模式设置为 StageScaleMode.NO_SCALE 也是如此。Stage.stageWidth 和 Stage.stageHeight 将继续使用传统像素单位。
实现
public function get contentsScaleFactor():Number
deviceOrientation | 属性 |
deviceOrientation:String
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
设备的物理方向。
在具有滑出式键盘的设备上,在确定设备方向时,键盘的状态比加速计检测到的旋转有更高的优先级。因此,在具有侧装式键盘的纵向长宽比设备上,无论用户如何手持设备,当键盘打开时 deviceOrientation
属性都会报告 ROTATED_LEFT
。
设置或比较此属性的值时,使用 StageOrientation 类中定义的常量。
AIR 配置文件支持:移动设备支持此功能,但桌面操作系统或 AIR for TV 设备不支持此功能。您可以使用 Stage.supportsOrientationChange
属性在运行时测试是否受支持。有关在多个配置文件之间支持 API 的详细信息,请参阅 AIR 配置文件支持。
实现
public function get deviceOrientation():String
相关 API 元素
displayState | 属性 |
displayState:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9.0.28.0, Flash Lite 4 |
用于指定要使用哪个显示状态的 StageDisplayState 类的值。以下是有效值:
StageDisplayState.FULL_SCREEN
设置 AIR 应用程序或 Flash Player 中的内容在用户的整个屏幕上扩展舞台。禁用键盘输入,少数几个非打印键除外。StageDisplayState.FULL_SCREEN_INTERACTIVE
将应用程序设置为扩展舞台以覆盖用户的整个屏幕(允许键盘输入)。(在 AIR 和 Flash Player 中可用,从 Flash Player 11.3 开始提供。)StageDisplayState.NORMAL
将舞台设置回标准舞台显示模式。
影片在全屏模式下的缩放行为由 scaleMode
设置确定(在 HTML 文件中使用 Stage.scaleMode
属性或 SWF 文件的 embed
标签设置进行设置)。如果 scaleMode
属性设置为 noScale
,则当应用程序过渡为全屏模式时,舞台的 width
和 height
属性将更新,舞台调度 resize
事件。如果设置了任何其他缩放模式,则缩放舞台及其内容以填充新屏幕尺寸。Stage 对象保持原来的 width
和 height
值,不调度 resize
事件。
以下限制适用于在 HTML 页内播放的 SWF 文件(而不针对使用独立 Flash Player 或 AIR 运行时播放的文件):
- 要启用全屏模式,请将
allowFullScreen
参数添加到包含 SWF 文件的 HTML 页中的object
和embed
标签,同时将allowFullScreen
设置为"true"
,如下例所示:<param name="allowFullScreen" value="true" /> ... <embed src="example.swf" allowFullScreen="true" ... >
HTML 页还可以使用脚本生成 SWF 嵌入标签。您需要修改脚本,以使其插入正确的
allowFullScreen
设置。Flash Professional 和 Flash Builder 生成的 HTML 页面使用AC_FL_RunContent()
函数嵌入对 SWF 文件的引用,然后您需要添加allowFullScreen
参数设置,如下所示:AC_FL_RunContent( ... "allowFullScreen", "true", ... )
- 全屏模式是在响应用户单击鼠标或按键时初始化的;在没有用户输入的情况下,影片不能更改
Stage.displayState
。在全屏模式下,Flash 运行时会限制键盘输入。可接受的键包括用于终止全屏模式的快捷键和非打印键,例如箭头、空格、Shift 键和 Tab 键。(使用全屏交互模式以支持从更多键输入。)用于终止全屏模式的键盘快捷键包括 Escape(Windows、Linux 和 Mac)、Ctrl+W (Windows)、Command+W (Mac) 和 Alt+F4。 - 从 Flash Player 9.0.115.0 开始,全屏模式在无窗口模式下的工作方式与窗口模式相同。如果将窗口模式(HTML 中的
wmode
)设置为不透明无窗口 (opaque
) 或透明无窗口 (transparent
),则可以启动全屏模式,但全屏窗口始终是不透明的。 - 要启用全屏交互模式(此模式支持键盘交互),请将
allowFullScreenInteractive
参数添加到包含 SWF 文件的 HTML 页的object
和embed
标记中,allowFullScreenInteractive
设置为"true"
,如下面示例所示:<param name="allowFullScreenInteractive" value="true" /> ...
对于在独立 Flash Player 或 AIR 中运行的 SWF 内容,不 存在这些限制。
进入全屏模式时,Flash 运行时会在 SWF 内容上快速显示一条通知,通知用户他们处于全屏模式,并且可以按 Esc 键退出全屏模式。
进入全屏交互模式时,Flash Player 在 SWF 内容上显示一条确认提示,允许用户访问扩展的键盘输入(包括打印键),并通知用户他们可以按 Esc 键退出全屏交互模式。您不应假定确认提示的外观/位置。您可以通过侦听 FullScreenEvent.FULL_SCREEN_INTERACTIVE_ACCEPTED
事件,确定用户是否已允许访问扩展的键盘输入。
对于以全屏模式运行的 AIR 内容,在播放视频内容时,将禁用系统屏幕保护程序和节能选项,直到该视频停止或退出全屏模式。
在 Linux 上,将 displayState
设置为 StageDisplayState.FULL_SCREEN
或 StageDisplayState.FULL_SCREEN_INTERACTIVE
是一种异步操作。
实现
public function get displayState():String
public function set displayState(value:String):void
引发
SecurityError — 调用 Stage 对象的 displayState 属性会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。在已显示设置对话框但用户没有响应时,尝试设置 displayState 属性 (property),或者如果 param 或 embed HTML 标签的 allowFullScreen 属性 (attribute) 没有设置为 true ,则引发安全错误。
|
相关 API 元素
示例 ( 如何使用本示例 )
displayState
属性创造全屏体验。 注意:出于安全方面的限制,只有在某些情况下才能触发全屏,例如,如果用户单击了鼠标或按了键盘键。在浏览器中运行时,allowFullScreen 属性必须设置为 true。
package { import flash.display.Sprite; import flash.display.Stage; import flash.events.*; import flash.net.NetConnection; import flash.net.NetStream; import flash.media.Video; public class FullScreenExample extends Sprite { private var videoURL:String = "testVideo.flv"; private var connection:NetConnection; private var stream:NetStream; private var video:Video; public function FullScreenExample() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); loaderInfo.addEventListener(Event.INIT, createMouseListener); } private function createMouseListener(event:Event):void { stage.addEventListener(MouseEvent.CLICK,toggleFullScreen); } private function toggleFullScreen(event:MouseEvent):void { switch(stage.displayState) { case "normal": stage.displayState = "fullScreen"; break; case "fullScreen": default: stage.displayState = "normal"; break; } } // Video related: private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace("Unable to locate video: " + videoURL); break; } } private function connectStream():void { var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); video = new Video(stage.stageWidth,stage.stageHeight); video.attachNetStream(stream); stream.play(videoURL); addChild(video); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { // ignore AsyncErrorEvent events. } } }
focus | 属性 |
focus:InteractiveObject
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
具有键盘焦点的交互式对象;如果没有设置焦点,或者具有焦点的对象属于调用对象无权访问的安全沙箱,则为 null
。
实现
public function get focus():InteractiveObject
public function set focus(value:InteractiveObject):void
引发
Error — 如果不能将焦点设置到目标,则会引发错误。
|
示例 ( 如何使用本示例 )
myTF
,以便用户不必执行单击即可开始键入。在 iOS、Android 移动设备和 tvOS 设备上,用户需要单击文本字段才能激活软键盘。如果在创作工具界面中测试此代码,则仅可以访问几个键,因为主机(浏览器或工具)首先解释大多数按键。要查看此示例按预期方式工作的情况,请对其进行编译并运行 SWF 文件。
var myTF:TextField = new TextField(); myTF.border =true; myTF.type = TextFieldType.INPUT; addChild(myTF); stage.focus= myTF;
frameRate | 属性 |
frameRate:Number
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
获取并设置舞台的帧速率。帧速率是指每秒显示的帧数。默认情况下,速率设置为第一个加载的 SWF 文件的帧速率。帧速率的有效范围为每秒 0.01 到 1000 个帧。
注意:应用程序可能由于以下原因而无法支持高帧速率设置:目标平台不够快或播放器与显示设备的垂直空白时间(在 LCD 设备上通常为 60 Hz)同步。在某些情况下,如果目标平台将占用高 CPU 使用率,它可能还会选择降低最大帧率。
对于在 Adobe AIR 中运行的内容,设置一个 Stage 对象的 frameRate
属性会更改所有 Stage 对象(由不同的 NativeWindow 对象使用)的帧速率。
实现
public function get frameRate():Number
public function set frameRate(value:Number):void
引发
SecurityError — 调用 Stage 对象的 frameRate 属性会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
fullScreenHeight | 属性 |
fullScreenHeight:uint
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
返回变为全屏大小时使用的显示器高度(如果立即进入该状态)。如果用户有多台显示器,则使用的显示器是此时显示大部分舞台的显示器。
注意:在检索值和变为全屏大小之间,如果用户有机会将浏览器从一台显示器移到另一台显示器,则该值可能不正确。如果在将 Stage.displayState
设置为 StageDisplayState.FULL_SCREEN
的事件处理函数中检索值,则该值是正确的。
如果将 Stage.align
设置为 StageAlign.TOP_LEFT
并将 Stage.scaleMode
设置为 StageScaleMode.NO_SCALE
,则该值是显示器的像素高度并且与舞台高度相同。
实现
public function get fullScreenHeight():uint
相关 API 元素
fullScreenSourceRect
fullScreenWidth
scaleMode
StageDisplayState
flash.events.Event.RESIZE
flash.events.FullScreenEvent
示例 ( 如何使用本示例 )
enterFullScreen()
事件处理函数,它将设置 fullScreenSourceRect
属性并进入全屏模式。为了设置 fullScreenSourceRect
属性,该事件处理函数先从红色正方形的位置和尺寸入手。然后,它将红色正方形的高宽比(宽度除以高度)与舞台在全屏宽度和高度下的高宽比进行比较,以便扩展矩形 (fullScreenSourceRect
) 使其与屏幕高宽比相匹配。结果是红色正方形占据了显示器的整个高度,并且可以在每条边上看见绿色背景。如果高宽比不匹配,将在每条边上显示舞台背景颜色(默认情况下为白色),而不是显示绿色背景。
注意:应在浏览器中测试此示例。在“Flash 发布设置”对话框的“HTML”选项卡上,选择“仅 Flash - 允许全屏”模板。指定 Flash Player 的 9.0.115.0 版本,并确保在“格式”选项卡中选择了 Flash 和 HTML 格式。然后,发布生成的 HTML 文件,并在浏览器中打开该文件。
import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.MouseEvent; import flash.geom.Rectangle; // cover the stage with a green rectangle var greenRect:Sprite = new Sprite(); greenRect.graphics.beginFill(0x00FF00); greenRect.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); addChild(greenRect); // create red square on stage, turn it into a button for going to full screen var redSquare:Sprite = new Sprite(); redSquare.graphics.beginFill(0xFF0000); redSquare.graphics.drawRect(0, 0, 300, 300); redSquare.x = 50; redSquare.y = 50; redSquare.addEventListener(MouseEvent.CLICK, enterFullScreen); redSquare.buttonMode = true; addChild(redSquare); function enterFullScreen(e:MouseEvent):void { // we will go to full screen zoomed in on the red square var redSquare:Sprite = e.target as Sprite; var fullScreenRect:Rectangle = new Rectangle(redSquare.x, redSquare.y, redSquare.width, redSquare.height); // calculate aspect ratio of the red square var rectAspectRatio:Number = fullScreenRect.width / fullScreenRect.height; // calculate aspect ratio of the screen var screenAspectRatio:Number = stage.fullScreenWidth / stage.fullScreenHeight; // change the fullScreenRect so that it covers the entire screen, keeping it centered on the redSquare // try commenting out this section to see what happens if you do not fix the aspect ratio. if (rectAspectRatio > screenAspectRatio) { var newHeight:Number = fullScreenRect.width / screenAspectRatio; fullScreenRect.y -= ((newHeight - fullScreenRect.height) / 2); fullScreenRect.height = newHeight; } else if (rectAspectRatio < screenAspectRatio) { var newWidth:Number = fullScreenRect.height * screenAspectRatio; fullScreenRect.x -= ((newWidth - fullScreenRect.width) / 2); fullScreenRect.width = newWidth; } // go to full screen stage.fullScreenSourceRect = fullScreenRect; stage.displayState = StageDisplayState.FULL_SCREEN; }
fullScreenSourceRect | 属性 |
fullScreenSourceRect:Rectangle
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
设置 Flash 运行时以将特定的舞台区域放大到全屏模式。如果可以,Flash 运行时会使用硬件进行缩放(使用用户计算机上的图形和视频卡),通常,以这种方式显示内容的速度比使用软件缩放快。
如果将此属性设为有效矩形并将 displayState
属性设为全屏模式,Flash 运行时将对指定区域进行缩放。ActionScript 中的实际舞台大小(以像素为单位)不会发生改变。Flash 运行时对矩形大小强制规定了最小限制,以容纳标准的“按 Esc 退出全屏模式”消息。通常,此限制大约为 260 x 30 个像素,但可能因平台和 Flash 运行时版本而异。
仅当 Flash 运行时未处于全屏模式时,才能设置此属性。要正确使用此属性,请先设置此属性,然后将 displayState
属性设置为全屏模式,如代码示例中所示。注意:在 Flash Player 15 和更高版本中,即使 Flash 运行时处于全屏模式,也可以设置此属性。
要启用缩放功能,请将 fullScreenSourceRect
属性设置为矩形对象:
// valid, will enable hardware scaling stage.fullScreenSourceRect = new Rectangle(0,0,320,240);
要禁用缩放功能,请在 ActionScript 3.0 中设置 fullScreenSourceRect=null
,而在 ActionScript 2.0 中设置 undefined
。
stage.fullScreenSourceRect = null;
最终用户还可以在“Flash Player 显示设置”中进行选择以关闭硬件缩放功能,默认情况下,将启用此功能。有关详细信息,请参阅 www.adobe.com/go/display_settings_cn。
实现
public function get fullScreenSourceRect():Rectangle
public function set fullScreenSourceRect(value:Rectangle):void
相关 API 元素
Stage.displayState
Stage.scaleMode
flash.events.FullScreenEvent
flash.events.Event.RESIZE
示例 ( 如何使用本示例 )
import flash.geom.*; { stage.fullScreenSourceRect = new Rectangle(0,0,320,240); stage.displayState = StageDisplayState.FULL_SCREEN; }
在使用带有硬件缩放的全屏模式之前,必须具备以下条件:
- 需要有 Flash Player 9.0.115.0 或更高版本,以及支持该版本的创作工具。
- 需要修改 HTML 模板以支持全屏模式。必须为
object
和embed
标签将allowFullScreen
属性设置为true
。(生成 SWF 嵌入标签的脚本也必须考虑到全屏模式。) 有关可用于 Flash Builder 的文件样本,请参阅文章“了解 Flash Player 9 中的全屏模式”。 - 您的应用程序必须具有访问 FLV 视频文件的权限。在此示例中,假定 Flash 视频 (FLV) 文件与 SWF 文件在同一目录中。
- 用户必须允许使用全屏模式。
- 有关硬件缩放的更多信息,请参阅适用于 Flash Player 的文章:Exploring Flash Player support for high-definition H.264 video and AAC audio(了解高分辨率 H.264 视频和 AAC 音频的 Flash Player 支持)。
使用 NetConnection and NetStream 对象加载了一个 FLV 文件。由于 FLV 文件与 SWF 文件在同一目录中并且将通过 HTTP 进行连接,所以 NetConnection.connect()
方法的参数会被设置为 null
。connect
NetConnection 对象会通过调度一个调用 netStatusHandler()
方法的 netStatus
事件来报告其状态。netStatusHandler()
方法会检查连接是否成功并调用 connectStream()
方法,而 connectStream() 方法创建一个使用 NetConnection 对象作为参数的 NetStream 对象。它还会创建一个视频对象并将 NetStream 对象附加到该视频对象。然后,该视频对象会被添加到显示列表中,并且会设置流进行播放。由于 FLV 视频文件不包含元数据或提示点信息,所以将会调度一个 AsyncError
事件。必须设置一个侦听器来处理该事件。这里设置了侦听器并且它忽略该事件。另外还为 NetStream 对象设置了 netStatus
事件的另一个侦听器。如果没有找到流,它将会显示一条错误信息。(请注意,可以使用 netStatusHandler()
来处理为流或连接报告的任意数量的不同状态信息。)
在可以访问所加载 SWF 文件的属性和方法时,会调用 createMouseListener()
方法。它会设置一个在用鼠标单击舞台时使用的事件侦听器。toggleFullScreen()
方法会检查显示状态是处于全屏模式还是处于正常模式。如果是正常模式,视频对象的大小会被设置为视频流的大小。fullScreenSourceRect
属性会被设置为一个与视频对象尺寸匹配的矩形。然后,Stage.displayMode
属性会被设置为全屏模式,这样就会导致源矩形中的视频扩展,从而填满全屏。如果符合系统要求,将会使用计算机的图形硬件来改进全屏视频呈现的性能,并且显示状态会被设置为全屏模式。为了捕捉在切换为全屏模式时可能出现的任何安全错误,可以使用 try...catch
。(请注意,在设置 fullScreenSourceRect
属性之后,必须将显示状态设置为全屏模式。) 在切换到正常模式之前,会将视频对象的宽度和高度设回所保存的原始视频对象的高度和宽度。否则,为全屏模式而对视频对象所做的更改将会确定宽度和高度。
package { import flash.display.Sprite; import flash.display.StageDisplayState; import flash.media.Video; import flash.net.NetConnection; import flash.net.NetStream; import flash.events.NetStatusEvent; import flash.events.AsyncErrorEvent; import flash.events.SecurityErrorEvent; import flash.events.MouseEvent; import flash.events.Event; import flash.geom.Rectangle; public class Stage_fullScreenSourceRectExample2 extends Sprite { private var videoURL:String = "testVideo1.flv"; private var connection:NetConnection; private var stream:NetStream; private var myVideo:Video; private var savedWidth:uint; private var savedHeight:uint; public function Stage_fullScreenSourceRectExample2() { connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); connection.connect(null); loaderInfo.addEventListener(Event.INIT, createMouseListener); } private function createMouseListener(event:Event):void { stage.addEventListener(MouseEvent.CLICK, toggleFullScreen); } private function toggleFullScreen(event:MouseEvent):void { if(stage.displayState == StageDisplayState.NORMAL) { myVideo.width = myVideo.videoWidth; myVideo.height = myVideo.videoHeight; try { stage.fullScreenSourceRect = new Rectangle(myVideo.x, myVideo.y, myVideo.width, myVideo.height); stage.displayState = StageDisplayState.FULL_SCREEN; } catch (e:SecurityError) { trace ("A security error occurred while switching to full screen: " + event); myVideo.width = savedWidth; myVideo.height = savedHeight; } }else { myVideo.width = savedWidth; myVideo.height = savedHeight; stage.displayState = StageDisplayState.NORMAL; } } private function netStatusHandler(event:NetStatusEvent):void { switch (event.info.code) { case "NetConnection.Connect.Success": connectStream(); break; case "NetStream.Play.StreamNotFound": trace ("Unable to locate video: " + videoURL); break; } } private function connectStream():void { var stream:NetStream = new NetStream(connection); stream.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler); stream.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); myVideo = new Video(); myVideo.attachNetStream(stream); stream.play(videoURL); savedWidth = myVideo.width; savedHeight = myVideo.height; addChild(myVideo); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function asyncErrorHandler(event:AsyncErrorEvent):void { } } }
fullScreenWidth | 属性 |
fullScreenWidth:uint
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9.0.115.0, Flash Lite 4 |
返回变为全屏大小时使用的显示器宽度(如果立即进入该状态)。如果用户有多台显示器,则使用的显示器是此时显示大部分舞台的显示器。
注意:在检索值和变为全屏大小之间,如果用户有机会将浏览器从一台显示器移到另一台显示器,则该值可能不正确。如果在将 Stage.displayState
设置为 StageDisplayState.FULL_SCREEN
的事件处理函数中检索值,则该值是正确的。
如果将 Stage.align
设置为 StageAlign.TOP_LEFT
并将 Stage.scaleMode
设置为 StageScaleMode.NO_SCALE
,则该值是显示器的像素宽度并且与舞台宽度相同。
实现
public function get fullScreenWidth():uint
相关 API 元素
fullScreenHeight
fullScreenSourceRect
scaleMode
StageDisplayState
flash.events.Event.RESIZE
flash.events.FullScreenEvent
示例 ( 如何使用本示例 )
enterFullScreen()
事件处理函数,它将设置 fullScreenSourceRect
属性并进入全屏模式。为了设置 fullScreenSourceRect
属性,该事件处理函数先从红色正方形的位置和尺寸入手。然后,它将红色正方形的高宽比(宽度除以高度)与舞台在全屏宽度和高度下的高宽比进行比较,以便扩展矩形 (fullScreenSourceRect
) 使其与屏幕高宽比相匹配。结果是红色正方形占据了显示器的整个高度,并且可以在每条边上看见绿色背景。如果高宽比不匹配,将在每条边上显示舞台背景颜色(默认情况下为白色),而不是显示绿色背景。
注意:应在浏览器中测试此示例。在“Flash 发布设置”对话框的“HTML”选项卡上,选择“仅 Flash - 允许全屏”模板。指定 Flash Player 的 9.0.115.0 版本,并确保在“格式”选项卡中选择了 Flash 和 HTML 格式。然后,发布生成的 HTML 文件,并在浏览器中打开该文件。
import flash.display.Sprite; import flash.display.Stage; import flash.display.StageDisplayState; import flash.events.MouseEvent; import flash.geom.Rectangle; // cover the stage with a green rectangle var greenRect:Sprite = new Sprite(); greenRect.graphics.beginFill(0x00FF00); greenRect.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); addChild(greenRect); // create red square on stage, turn it into a button for going to full screen var redSquare:Sprite = new Sprite(); redSquare.graphics.beginFill(0xFF0000); redSquare.graphics.drawRect(0, 0, 300, 300); redSquare.x = 50; redSquare.y = 50; redSquare.addEventListener(MouseEvent.CLICK, enterFullScreen); redSquare.buttonMode = true; addChild(redSquare); function enterFullScreen(e:MouseEvent):void { // we will go to full screen zoomed in on the red square var redSquare:Sprite = e.target as Sprite; var fullScreenRect:Rectangle = new Rectangle(redSquare.x, redSquare.y, redSquare.width, redSquare.height); // calculate aspect ratio of the red square var rectAspectRatio:Number = fullScreenRect.width / fullScreenRect.height; // calculate aspect ratio of the screen var screenAspectRatio:Number = stage.fullScreenWidth / stage.fullScreenHeight; // change the fullScreenRect so that it covers the entire screen, keeping it centered on the redSquare // try commenting out this section to see what happens if you do not fix the aspect ratio. if (rectAspectRatio > screenAspectRatio) { var newHeight:Number = fullScreenRect.width / screenAspectRatio; fullScreenRect.y -= ((newHeight - fullScreenRect.height) / 2); fullScreenRect.height = newHeight; } else if (rectAspectRatio < screenAspectRatio) { var newWidth:Number = fullScreenRect.height * screenAspectRatio; fullScreenRect.x -= ((newWidth - fullScreenRect.width) / 2); fullScreenRect.width = newWidth; } // go to full screen stage.fullScreenSourceRect = fullScreenRect; stage.displayState = StageDisplayState.FULL_SCREEN; }
height | 属性 |
height:Number
[覆盖] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示显示对象的高度,以像素为单位。高度是根据显示对象内容的范围来计算的。如果您设置了 height
属性,则 scaleY
属性会相应调整,如以下代码所示:
var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleY) // 1; rect.height = 200; trace(rect.scaleY) // 2;
除 TextField 和 Video 对象以外,没有内容的显示对象(如一个空的 Sprite)的高度为 0,即使您尝试将 height
设置为其他值,也是这样。
实现
override public function get height():Number
override public function set height(value:Number):void
引发
SecurityError — 引用 Stage 对象的 height 属性会因任何调用者没有与 Stage 所有者(主 SWF 文件)位于同一安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
| |
IllegalOperationError — 即使调用对象是 Stage 所有者(主 SWF 文件),设置 Stage 对象的 height 属性也是非法的。
|
mouseChildren | 属性 |
mouseChildren:Boolean
[覆盖] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
确定对象的子级是否支持鼠标或用户输入设备。如果对象支持鼠标或用户输入设备,用户可以通过使用鼠标或用户输入设备与之交互。默认值为 true
。
当您使用 Sprite 类的实例(而不是使用 SimpleButton 类)来创建按钮时,此属性很有用。当您使用 Sprite 实例来创建按钮时,可以选择使用 addChild()
方法添加其他 Sprite 实例来修饰该按钮。此过程可能导致鼠标事件出现意外行为,因为当您期望父实例成为鼠标事件的目标对象时,作为子项添加的 Sprite 实例却可能成为目标对象。要确保父实例用作鼠标事件的目标对象,您可以将父实例的 mouseChildren
属性设置为 false
。
设置此属性不会调度任何事件。您必须使用 addEventListener()
方法才能创建交互式功能。
实现
override public function get mouseChildren():Boolean
override public function set mouseChildren(value:Boolean):void
引发
SecurityError — 引用 Stage 对象的 mouseChildren 属性会因任何调用者没有与 Stage 所有者(主 SWF 文件)位于同一安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
mouseLock | 属性 |
mouseLock:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 11.2, AIR 3.2 |
设置为 true
可以启用鼠标锁定。启用鼠标锁定将禁用光标,并允许没有限制的鼠标移动。您只能在桌面应用程序的全屏模式下启用鼠标锁定。如果在未处于全屏模式的应用程序上或为移动设备上的应用程序设置鼠标锁定,则会引发异常。
在以下情况下将自动禁用鼠标锁定,并且让鼠标光标再次显示:
- 用户可以使用 Esc 键(所有平台)、Control-W (Windows)、Command-W (Mac) 或 Alt-F4 (Windows) 退出全屏模式。
- 应用程序窗口将缺少焦点。
- 所有设置 UI 均可见,包括所有隐私对话框。
- 此时将显示本机对话框,例如文件上传对话框。
退出全屏模式时,此属性将自动设置为 false
。
与鼠标移动关联的事件,例如 mouseMove
事件,使用 MouseEvent 类表示事件对象。禁用鼠标锁定时,使用 MouseEvent.localX
和 MouseEvent.localY
属性确定鼠标的位置。启用鼠标锁定时,使用 MouseEvent.movementX
和 MouseEvent.movementY
属性确定鼠标的位置。movementX
和 movementY
属性包含自上一个事件以来的鼠标位置的更改,而不是鼠标位置的绝对坐标。
注意:应用程序处于全屏模式时,将不会调度连接到显示对象而非 Stage 的鼠标事件侦听器。因此,如果要在 mouseLock
为 true
时接收鼠标 delta 和任何其他鼠标事件,请将鼠标事件侦听器连接到 Stage 对象。
实现
public function get mouseLock():Boolean
public function set mouseLock(value:Boolean):void
相关 API 元素
nativeWindow | 属性 |
nativeWindow:NativeWindow
[只读] 运行时版本: | AIR 1.0, Flash Lite 4 |
对包含此舞台的 NativeWindow 对象的引用。
窗口表示本机操作系统的窗口,舞台表示窗口所包含的内容。此属性仅对在支持 NativeWindow 类的平台上的 AIR 中运行的内容有效。在其他平台上,此属性将为 null
。在 Flash Player 中(在浏览器中运行的内容),此属性也将为 null
。
实现
public function get nativeWindow():NativeWindow
numChildren | 属性 |
numChildren:int
[只读] [覆盖] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
返回此对象的子项数目。
实现
override public function get numChildren():int
引发
SecurityError — 引用 Stage 对象的 numChildren 属性会因任何调用者没有与 Stage 所有者(主 SWF 文件)位于同一安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
orientation | 属性 |
orientation:String
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
当前舞台方向。此属性设置为以下四个值之一,这些值被定义为 StageOrientation 类中的常量:
StageOrientation 常量 | 舞台方向 |
---|---|
StageOrientation.DEFAULT | 屏幕处于默认方向(正面向上)。 |
StageOrientation.ROTATED_RIGHT | 屏幕向右旋转。 |
StageOrientation.ROTATED_LEFT | 屏幕向左旋转。 |
StageOrientation.UPSIDE_DOWN | 屏幕倒置翻转。 |
StageOrientation.UNKNOWN | 应用程序尚未确定屏幕的初始方向。可以为 orientationChange 事件添加事件侦听器。 |
要设置舞台方向,请使用 setOrientation()
方法。
重要说明:从 2.6 命名空间开始,在 Android 设备上支持 orientation 属性。
实现
public function get orientation():String
相关 API 元素
quality | 属性 |
quality:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
StageQuality 类中的一个用于指定使用哪种呈现品质的值。以下是有效值:
StageQuality.LOW
-- 低呈现品质。不消除图形的锯齿,不对位图进行平滑处理,但运行时仍使用 mip 贴图技术。StageQuality.MEDIUM
-- 中等呈现品质。图形是使用 2 x 2 像素网格消除锯齿的,而位图平滑处理取决于Bitmap.smoothing
设置。运行时使用 mip 贴图技术。此设置适用于不包含文本的影片。StageQuality.HIGH
-- 高呈现品质。图形是使用 4 x 4 像素网格消除锯齿的,而位图平滑处理取决于Bitmap.smoothing
设置。运行时使用 mip 贴图技术。这是 Flash Player 使用的默认呈现品质设置。StageQuality.BEST
-- 极高呈现品质。图形是使用 4 x 4 像素网格消除锯齿的。如果将Bitmap.smoothing
设置为true
,则运行时会使用产生较少伪像的高品质降级算法(但是,使用StageQuality.BEST
时将Bitmap.smoothing
设置为true
会显著降低性能,因此不建议使用此设置)。
较高的品质设置可以使缩放的位图得到较好的呈现品质。不过,较高的品质设置从运算角度看更昂贵。尤其在呈现缩放的视频时,使用较高的品质设置可以降低帧速率。
BitmapData.draw()
方法使用 Stage.quality
属性的值。或者,您也可以使用 BitmapData.drawWithQuality()
方法,此方法允许您指定 quality
参数,从而可忽略 Stage.quality
的当前值。
在 Adobe AIR 的桌面配置文件中,quality
可设置为 StageQuality.BEST
或 StageQuality.HIGH
(默认值为 StageQuality.HIGH
)。试图将其设置为其他值不会产生任何效果(且该属性保持不变)。在 AIR 的移动配置文件中,所有四个品质设置均可用。在移动设备上,默认值为 StageQuality.MEDIUM
。
对于在 Adobe AIR 中运行的内容,设置一个 Stage 对象的 quality
属性会更改所有 Stage 对象(由不同的 NativeWindow 对象使用)的呈现品质。
quality
属性的影响。
实现
public function get quality():String
public function set quality(value:String):void
引发
SecurityError — 调用 Stage 对象的 quality 属性会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
相关 API 元素
scaleMode | 属性 |
scaleMode:String
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
一个 StageScaleMode 类中指定要使用哪种缩放模式的值。以下是有效值:
StageScaleMode.EXACT_FIT
-- 整个应用程序在指定区域中可见,但不尝试保持原始高宽比。可能会发生扭曲,应用程序可能会拉伸或压缩显示。StageScaleMode.SHOW_ALL
-- 整个应用程序在指定区域中可见,且不发生扭曲,同时保持应用程序的原始高宽比。应用程序的两侧可能会显示边框。StageScaleMode.NO_BORDER
-- 整个应用程序填满指定区域,不发生扭曲,但有可能进行一些裁切,同时保持应用程序的原始高宽比。StageScaleMode.NO_SCALE
-- 整个应用程序的大小固定,因此,即使播放器窗口的大小更改,它也会保持不变。如果播放器窗口比内容小,则可能进行一些裁切。
实现
public function get scaleMode():String
public function set scaleMode(value:String):void
引发
SecurityError — 调用 Stage 对象的 scaleMode 属性会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
相关 API 元素
showDefaultContextMenu | 属性 |
showDefaultContextMenu:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
指定是显示还是隐藏 Flash 运行时上下文菜单中的默认项。
如果将 showDefaultContextMenu
属性设置为 true
(默认设置),则会显示所有上下文菜单项。如果 showDefaultContextMenu
属性设置为 false
,则只显示“设置”和“关于...”菜单项。
实现
public function get showDefaultContextMenu():Boolean
public function set showDefaultContextMenu(value:Boolean):void
引发
SecurityError — 调用 Stage 对象的 showDefaultContextMenu 属性会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
softKeyboardRect | 属性 |
stage3Ds | 属性 |
stageFocusRect | 属性 |
stageFocusRect:Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定对象在具有焦点时是否显示加亮的边框。
实现
public function get stageFocusRect():Boolean
public function set stageFocusRect(value:Boolean):void
引发
SecurityError — 调用 Stage 对象的 stageFocusRect 属性会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
stageHeight | 属性 |
stageHeight:int
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
舞台的当前高度(以像素为单位)。
如果将 Stage.scaleMode
属性的值设置 StageScaleMode.NO_SCALE
,则当用户调整该窗口的大小时,舞台内容将保持其大小,而 stageHeight
属性将发生更改以反映由 SWF 文件占用的屏幕区域的新高度大小。(在其他缩放模式中,stageHeight
属性始终反映 SWF 文件的原始高度。)可以为 resize
事件添加事件侦听器,然后使用 Stage 类的 stageHeight
属性确定调整大小后的 Flash 运行时窗口的实际像素尺寸。使用该事件侦听器可以控制用户调整窗口大小时屏幕内容的调整方式。
设置 stageHeight
属性时,AIR for TV 设备与桌面设备的表现稍有不同。如果 Stage.scaleMode
属性设置为 StageScaleMode.NO_SCALE
,并且您设置了 stageHeight
属性,则舞台高度将直到 SWF 的下一帧才更改。
注意:在承载 SWF 文件的 HTML 页上,object
和 embed
标签的 height
属性必须设置为一个百分数(比如 100%
),而不是像素。如果该设置是由 JavaScript 代码生成的,则 AC_FL_RunContent()
方法的 height
参数也必须设置为百分数。此百分数应用于 stageHeight
值。
实现
public function get stageHeight():int
public function set stageHeight(value:int):void
引发
SecurityError — 调用 Stage 对象的 stageHeight 属性会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
相关 API 元素
stageVideos | 属性 |
stageVideos:Vector.<StageVideo>
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2.5, Flash Player 10.2 |
播放外部视频可以使用的 StageVideo 对象列表。
一次只能使用有限数量的 StageVideo 对象。SWF 开始运行时,可用 StageVideo 对象的数量取决于平台以及可用硬件。
要使用 StageVideo 对象,请将 stageVideos
矢量对象的成员调度给一个 StageVideo 变量。
所有 StageVideo 对象都显示在舞台上,位于所有显示对象后面。StageVideo 对象以它们在 stageVideos
矢量对象中的显示顺序显示在舞台上。例如,如果 stageVideos
矢量对象包含三个条目:
stageVideos
矢量对象 0 索引中的 StageVideo 对象显示在所有 StageVideo 对象后面。- 索引 1 中的 StageVideo 对象显示在索引 0 中的 StageVideo 对象前面。
- 索引 2 中的 StageVideo 对象显示在索引 1 中的 StageVideo 对象前面。
使用 StageVideo.depth
属性来更改此排序。
注意:用于电视的 AIR 设备仅支持一个 StageVideo 对象。
实现
public function get stageVideos():Vector.<StageVideo>
相关 API 元素
示例 ( 如何使用本示例 )
var stageVideo:StageVideo; if ( stage.stageVideos.length >= 1 ) { stageVideo = stage.stageVideos[0]; }
stageWidth | 属性 |
stageWidth:int
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
指定舞台的当前宽度(以像素为单位)。
如果将 Stage.scaleMode
属性的值设置 StageScaleMode.NO_SCALE
,则当用户调整该窗口的大小时,舞台内容将保持其定义的大小,而 stageWidth
属性将发生更改以反映由 SWF 文件占用的屏幕区域的新宽度大小。(在其他缩放模式中,stageWidth
属性始终反映 SWF 文件的原始宽度。)可以为 resize
事件添加事件侦听器,然后使用 Stage 类的 stageWidth
属性确定调整大小后的 Flash 运行时窗口的实际像素尺寸。使用该事件侦听器可以控制用户调整窗口大小时屏幕内容的调整方式。
设置 stageWidth
属性时,AIR for TV 设备与桌面设备表现稍有不同。如果 Stage.scaleMode
属性设置为 StageScaleMode.NO_SCALE
,而且您设置了 stageWidth
属性,则舞台宽度将直到 SWF 的下一帧才会更改。
注意:在承载 SWF 文件的 HTML 页上,object
和 embed
标签的 width
属性必须设置为一个百分数(比如 100%
),而不是像素。如果该设置是由 JavaScript 代码生成的,则 AC_FL_RunContent()
方法的 width
参数也必须设置为百分数。此百分数应用于 stageWidth
值。
实现
public function get stageWidth():int
public function set stageWidth(value:int):void
引发
SecurityError — 调用 Stage 对象的 stageWidth 属性会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
相关 API 元素
supportedOrientations | 属性 |
supportedOrientations:Vector.<String>
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2.6 |
当前设备支持的方向。
您可以使用此列表中包括的方向字符串作为 setOrientation()
方法的参数。设置不支持的方向失败,没有错误。
可能的方向包括:
StageOrientation 常量 | 舞台方向 |
---|---|
StageOrientation.DEFAULT | 将舞台方向设置为默认方向(正面向上)。 |
StageOrientation.ROTATED_RIGHT | 将舞台方向设置为向右旋转。 |
StageOrientation.ROTATED_LEFT | 将舞台方向设置为向左旋转。 |
StageOrientation.UPSIDE_DOWN | 将舞台方向设置为倒置翻转。 |
实现
public function get supportedOrientations():Vector.<String>
相关 API 元素
supportsOrientationChange | 属性 |
tabChildren | 属性 |
tabChildren:Boolean
[覆盖] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
确定对象的子项是否支持 Tab 键。为对象的子项启用或禁用 Tab 切换。默认值为 true
。
注意:不要将 tabChildren
属性用于 Flex。而应使用 mx.core.UIComponent.hasFocusableChildren
属性。
实现
override public function get tabChildren():Boolean
override public function set tabChildren(value:Boolean):void
引发
SecurityError — 引用 Stage 对象的 tabChildren 属性会因任何调用者没有与 Stage 所有者(主 SWF 文件)位于同一安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
textSnapshot | 属性 |
textSnapshot:flash.text:TextSnapshot
[只读] [覆盖] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
返回此 DisplayObjectContainer 实例的 TextSnapshot 对象。
实现
override public function get textSnapshot():flash.text:TextSnapshot
引发
IllegalOperationError — 引用 Stage 对象的 textSnapshot 属性会因 Stage 类未实现该属性而引发异常。为避免出现这种情况,请调用显示对象容器而非 Stage 对象的 textSnapshot 属性。
|
vsyncEnabled | 属性 |
width | 属性 |
width:Number
[覆盖] 语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
表示显示对象的宽度,以像素为单位。宽度是根据显示对象内容的范围来计算的。如果您设置了 width
属性,则 scaleX
属性会相应调整,如以下代码所示:
var rect:Shape = new Shape(); rect.graphics.beginFill(0xFF0000); rect.graphics.drawRect(0, 0, 100, 100); trace(rect.scaleX) // 1; rect.width = 200; trace(rect.scaleX) // 2;
除 TextField 和 Video 对象以外,没有内容的显示对象(如一个空的 Sprite)的宽度为 0,即使您尝试将 width
设置为其他值,也是这样。
实现
override public function get width():Number
override public function set width(value:Number):void
引发
SecurityError — 引用 Stage 对象的 width 属性会因任何调用者没有与 Stage 所有者(主 SWF 文件)位于同一安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
| |
IllegalOperationError — 即使您是 Stage 所有者,设置 Stage 对象的 width 属性也是非法的。
|
wmodeGPU | 属性 |
wmodeGPU:Boolean
[只读] 语言版本: | ActionScript 3.0 |
运行时版本: | Flash Player 10.0.32, AIR 1.5.2, Flash Lite 4 |
表示 GPU 合成是否可用及是否正在使用中。仅当下列三个条件同时存在时,wmodeGPU
的值才为 true
:
- 已请求 GPU 合成。
- GPU 合成可用。
- GPU 合成正在使用。
具体来说,wmodeGPU
属性表示下列条件之一:
- 尚未请求 GPU 合成或 GPU 合成不可用。在这种情况下,
wmodeGPU
属性值为false
。 - 已请求 GPU 合成(如果适用且可用),但是由于内容限制,此环境正在“回退模式”(非最佳渲染方式)下工作。在这种情况下,
wmodeGPU
属性值为true
。 - 已请求 GPU 合成(如果适用且可用),并且环境正在最佳模式下工作。在这种情况下,
wmodeGPU
属性值也为true
。
换句话说,wmodeGPU
属性会标识呈现环境的功能和状态。对于不支持 GPU 合成的运行时(例如,AIR 1.5.2),此值始终为 false
,因为(如上所述)此值仅在已请求 GPU 合成、GPU 合成可用且正在使用时为 true
。
wmodeGPU
属性用于确定 GPU 合成在运行时是否正在使用中。wmodeGPU
的值表示是否将由硬件对您的内容进行缩放,以使您可以显示正确大小的图形。您还可以确定是否要通过快速途径渲染,以使您可以对内容复杂性进行相应调整。
对于位于浏览器中的 Flash Player,可由承载 SWF 文件的页面中的 wmode
HTML 参数的 gpu
的值请求 GPU 合成。对于其他配置,可在 SWF 文件(使用 SWF 创作工具进行设置)头中请求 GPU 合成。
但是,wmodeGPU
属性不标识当前渲染性能。即使 GPU 合成“正在使用中”,渲染过程可能也不会在最佳模式下进行操作。要调整您的内容以实现最佳渲染,请使用 Flash 运行时调试版本并在您的 mm.cfg 文件中设置 DisplayGPUBlendsetting
。
注意:从运行时首次执行渲染传递之前运行的 ActionScript 引用此属性时,此属性始终为 false
。例如,如果您从 Adobe Flash Professional 的第 1 帧的脚本检查 wmodeGPU
,而且您的 SWF 文件是运行时新实例中加载的第一个 SWF 文件,则 wmodeGPU
值为 false
。至少发生一次渲染传递后,才能获取精确值。如果为 DisplayObject
的 exitFrame
事件编写事件侦听器,则 wmodeGPU
值是正确的值。
实现
public function get wmodeGPU():Boolean
相关 API 元素
示例 ( 如何使用本示例 )
wmodeGPU
属性,使您可以获取精确值。
mySprite.addEventListener(EXIT_FRAME, exithandler): function exithandler(exiteventobject:Event):void { trace(stage.wmodeGPU); }
addChild | () | 方法 |
override public function addChild(child:DisplayObject):DisplayObject
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
将一个 DisplayObject 子实例添加到该 DisplayObjectContainer 实例中。子项将被添加到该 DisplayObjectContainer 实例中其他所有子项的前(上)面。(要将某子项添加到特定索引位置,请使用 addChildAt()
方法。)
如果添加一个已将其它显示对象容器作为父项的子对象,则会从其它显示对象容器的子列表中删除该对象。
注意:stage.addChild()
命令可导致与发布的 SWF 文件有关的问题,包括安全性问题和与其他加载的 SWF 文件的冲突。无论将多少 SWF 文件加载到运行时中,Flash 运行时实例中都只有一个 Stage。因此,通常无论如何也不应将对象直接添加到 Stage。Stage 应该包含的唯一对象是根对象。创建 DisplayObjectContainer 以包含显示列表上的所有项目。如果需要,随后将 DisplayObjectContainer 实例添加到 Stage。
参数
child:DisplayObject — 要作为该 DisplayObjectContainer 实例的子项添加的 DisplayObject 实例。
|
DisplayObject — 在 child 参数中传递的 DisplayObject 实例。
|
引发
SecurityError — 调用 Stage 对象的 addChild() 方法会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一个安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
addChildAt | () | 方法 |
override public function addChildAt(child:DisplayObject, index:int):DisplayObject
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
将一个 DisplayObject 子实例添加到该 DisplayObjectContainer 实例中。该子项将被添加到指定的索引位置。索引为 0 表示该 DisplayObjectContainer 对象的显示列表的后(底)部。
例如,下例在索引位置 0、2、1 处分别显示 a、b、c 三个显示对象:
如果添加一个已将其它显示对象容器作为父项的子对象,则会从其它显示对象容器的子列表中删除该对象。
参数
child:DisplayObject — 要作为该 DisplayObjectContainer 实例的子项添加的 DisplayObject 实例。
| |
index:int — 添加该子项的索引位置。如果指定当前占用的索引位置,则该位置以及所有更高位置上的子对象会在子级列表中上移一个位置。
|
DisplayObject — 在 child 参数中传递的 DisplayObject 实例。
|
引发
SecurityError — 调用 Stage 对象的 addChildAt() 方法会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一个安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
addEventListener | () | 方法 |
override public function addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。可以为特定类型的事件、阶段和优先级在显示列表中的所有节点上注册事件侦听器。
成功注册一个事件侦听器后,无法通过额外调用 addEventListener()
来更改其优先级。要更改侦听器的优先级,必须首先调用 removeListener()
。然后,可以使用新的优先级再次注册该侦听器。
请记住,注册该侦听器后,如果继续调用具有不同 type
或 useCapture
值的 addEventListener()
,则会创建单独的侦听器注册。例如,如果首先注册 useCapture
设置为 true
的侦听器,则该侦听器只在捕获阶段进行侦听。如果使用同一个侦听器对象再次调用 addEventListener()
,并将 useCapture
设置为 false
,那么便会拥有两个单独的侦听器:一个在捕获阶段进行侦听,另一个在目标和冒泡阶段进行侦听。
不能只为目标阶段或冒泡阶段注册事件侦听器。这些阶段在注册期间是成对出现的,因为冒泡阶段只适用于目标节点的祖代。
如果不再需要某个事件侦听器,可调用 removeEventListener()
删除它,否则会产生内存问题。事件侦听器不会自动从内存中删除,因为只要调度对象存在,垃圾回收器就不会删除侦听器(除非 useWeakReference
参数设置为 true
)。
复制 EventDispatcher 实例时并不复制其中附加的事件侦听器。(如果新近创建的节点需要一个事件侦听器,必须在创建该节点后附加该侦听器。)但是,如果移动 EventDispatcher 实例,则其中附加的事件侦听器也会随之移动。
如果在正在处理事件的节点上注册事件侦听器,则不会在当前阶段触发事件侦听器,但会在事件流的稍后阶段触发,如冒泡阶段。
如果从正在处理事件的节点中删除事件侦听器,则该事件侦听器仍由当前操作触发。删除事件侦听器后,决不会再次调用该事件侦听器(除非再次注册以备将来处理)。
参数
type:String — 事件的类型。
| |
listener:Function — 处理事件的侦听器函数。此函数必须接受 Event 对象作为其唯一的参数,并且不能返回任何结果,如下面的示例所示:
function(evt:Event):void 函数可以有任何名称。 | |
useCapture:Boolean (default = false ) —
确定侦听器是运行于捕获阶段还是运行于目标和冒泡阶段。如果将 useCapture 设置为 true ,则侦听器只在捕获阶段处理事件,而不在目标或冒泡阶段处理事件。如果 useCapture 为 false ,则侦听器只在目标或冒泡阶段处理事件。要在所有三个阶段都侦听事件,请调用 addEventListener 两次:一次将 useCapture 设置为 true ,一次将 useCapture 设置为 false 。
| |
priority:int (default = 0 ) — 事件侦听器的优先级。优先级由一个带符号的 32 位整数指定。数字越大,优先级越高。优先级为 n 的所有侦听器会在优先级为 n -1 的侦听器之前得到处理。如果两个或更多个侦听器共享相同的优先级,则按照它们的添加顺序进行处理。默认优先级为 0。
| |
useWeakReference:Boolean (default = false ) — 确定对侦听器的引用是强引用,还是弱引用。强引用(默认值)可防止您的侦听器被当作垃圾回收。弱引用则没有此作用。 类级别成员函数不属于垃圾回收的对象,因此可以对类级别成员函数将 |
引发
SecurityError — 调用 Stage 对象的 addEventListener 方法会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一个安全沙箱而引发异常。为避免出现这种情况,Stage 所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
assignFocus | () | 方法 |
public function assignFocus(objectToFocus:InteractiveObject, direction:String):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0 |
将键盘焦点设置为由 objectToFocus
指定的交互式对象,焦点方向由 direction
参数指定。
焦点方向的概念必须由应用程序(或应用程序框架)来定义。虽然可以使用其他可用的属性来确定排序原则,但交互式对象并不存在固有的焦点排序。例如,您可以按照交互式对象在舞台上或在显示列表中的位置对这些对象进行排序。调用 assignFocus()
等效于设置 Stage.focus
属性,但它还具有另外的功能,可以表示设置焦点时所使用的方向。
在接收焦点时,objectToFocus
将调度 focusIn
事件。FocusEvent 对象的 direction
属性将报告 direction
参数的设置。
如果将 HTMLLoader 对象赋予 objectToFocus
参数,则 HTMLLoader 对象会根据 direction
参数值在 HTML DOM 中选择适当的可获得焦点对象。如果该参数值为 FocusDirection.BOTTOM
,则 HTML DOM 中位于读取顺序末尾的可获得焦点对象将获得焦点。如果该参数值为 FocusDirection.TOP
,则 HTML DOM 中位于读取顺序开头的可获得焦点对象将获得焦点。如果该参数值为 NONE
,则 HTMLLoader 对象会在不更改其当前已设置焦点元素的情况下获得焦点。
参数
objectToFocus:InteractiveObject — 要设置焦点的对象;如果要从舞台上任何元素中清除焦点,则为 null 。
| |
direction:String — 对 objectToFocus 设置焦点所使用的方向。有效值枚举为 FocusDirection 类中的常量。
|
引发
Error — 如果无法将焦点设置到目标或 direction 不是有效的类型。
|
相关 API 元素
dispatchEvent | () | 方法 |
override public function dispatchEvent(event:Event):Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
将事件调度到事件流中。事件目标是对其调用 dispatchEvent()
方法的 EventDispatcher 对象。
参数
event:Event — 调度到事件流中的 Event 对象。如果正在重新调度事件,则会自动创建此事件的一个克隆。在调度了事件后,其 target 属性将无法更改,因此您必须创建此事件的一个新副本以能够重新调度。
|
Boolean — 如果成功调度了事件,则值为 true 。值 false 表示失败或对事件调用了 preventDefault() 。
|
引发
SecurityError — 调用 Stage 对象的 dispatchEvent() 方法会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一个安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
hasEventListener | () | 方法 |
override public function hasEventListener(type:String):Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。这样,您就可以确定 EventDispatcher 对象在事件流层次结构中的哪个位置改变了对事件类型的处理。要确定特定事件类型是否确实触发了事件侦听器,请使用 willTrigger()
。
hasEventListener()
与 willTrigger()
的区别是:hasEventListener()
只检查它所属的对象,而 willTrigger()
检查整个事件流以查找由 type
参数指定的事件。
当从 LoaderInfo 对象调用 hasEventListener()
时,只考虑调用方可以访问的侦听器。
参数
type:String — 事件的类型。
|
Boolean — 如果指定类型的侦听器已注册,则值为 true ;否则,值为 false 。
|
引发
SecurityError — 调用 Stage 对象的 hasEventListener() 方法会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一个安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
invalidate | () | 方法 |
public function invalidate():void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
调用 invalidate()
方法,以便在出现下一个 Flash 运行时必须呈现显示列表的时机(例如,当播放头前进到一个新帧)时,向其发送提醒显示对象的信号。调用 invalidate()
方法后,在显示列表下次呈现时,Flash 运行时会向每个已注册侦听 render
事件的显示对象发送一个 render
事件。每次您希望 Flash 运行时发送 render
事件时,都必须调用 invalidate()
方法。
render
事件使您可以在显示列表实际呈现前对其进行更改。因此,您就可以将对显示列表的更新尽可能地向后延迟。这样可以通过消除不必要的屏幕更新来提高性能。
只将 render
事件调度到与调用 stage.invalidate()
方法的代码位于同一安全域中的显示对象,或位于通过 Security.allowDomain()
方法被授予权限的安全域中的显示对象。
相关 API 元素
isFocusInaccessible | () | 方法 |
removeChildAt | () | 方法 |
override public function removeChildAt(index:int):DisplayObject
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
从 DisplayObjectContainer 的子列表中指定的 index
位置删除子 DisplayObject。将已删除子项的 parent
属性设置为 null
;如果没有对该子项的任何其他引用,则将该对象作为垃圾回收。DisplayObjectContainer 中该子项之上的任何显示对象的索引位置都减去 1。
垃圾回收器重新分配未使用的内存空间。当在某处变量或对象不再被主动地引用或存储时,如果不存在对该变量或对象的任何其它引用,则垃圾回收器将清理并擦除其过去占用的内存空间。
参数
index:int — 要删除的 DisplayObject 的子索引。
|
DisplayObject — 已删除的 DisplayObject 实例。
|
引发
SecurityError — 调用 Stage 对象的 removeChildAt() 方法会因任何调用方没有与要删除的对象位于同一个安全沙箱而引发异常。为避免出现这种情况,该对象的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
setAspectRatio | () | 方法 |
public function setAspectRatio(newAspectRatio:String):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
将舞台设置成使用指定长宽比的方向。
如果由于方法调用导致舞台方向更改,Stage 对象将调度 orientationChange 事件。
要检查是否支持设备方向,请检查 Stage.supportsOrientantionChange
属性的值。
AIR 配置文件支持:移动设备支持此功能,但桌面操作系统或 AIR for TV 设备不支持此功能。您可以使用 Stage.supportsOrientantionChange
属性在运行时测试是否受支持。有关在多个配置文件之间支持 API 的详细信息,请参阅 AIR 配置文件支持。
参数
newAspectRatio:String — 所需高宽比的类型代码(StageAspectRatio.PORTRAIT 或 StageAspectRatio.LANDSCAPE 或 StageAspectRatio.ANY )。
|
引发
ArgumentError — 作为 newAspectRatio 参数传递的值无效。此值必须与 StageAspectRatio 类中定义的常量之一匹配。
|
相关 API 元素
setChildIndex | () | 方法 |
override public function setChildIndex(child:DisplayObject, index:int):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
更改现有子项在显示对象容器中的位置。这会影响子对象的分层。例如,下例在索引位置 0、1、2 处分别显示 a、b、c 三个显示对象:
在使用 setChildIndex()
方法并指定一个已经占用的索引位置时,唯一发生更改的位置是显示对象先前的位置和新位置之间的位置。所有其他位置将保持不变。如果将一个子项移动到比它当前的索引更低的索引处,则这两个索引之间的所有子项的索引引用都将增加 1。如果将一个子项移动到比它当前的索引更高的索引处,则这两个索引之间的所有子项的索引引用都将减小 1。例如,如果上例中的显示对象容器名为 container
,则可以通过调用以下代码来交换带有 a 和 b 标记的显示对象的位置:
container.setChildIndex(container.getChildAt(1), 0);
该代码产生以下对象排列:
参数
child:DisplayObject — 要为其更改索引编号的 DisplayObject 子实例。
| |
index:int — 生成的 child 显示对象的索引编号。
|
引发
SecurityError — 调用 Stage 对象的 setChildIndex() 方法会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一个安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
setOrientation | () | 方法 |
public function setOrientation(newOrientation:String):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2 |
将舞台设置成指定方向。
将 newOrientation
参数设置为下列四个值之一,这些值被定义为 StageOrientation 类中的常量:
StageOrientation 常量 | 舞台方向 |
---|---|
StageOrientation.DEFAULT | 将舞台方向设置为默认方向(正面向上)。 |
StageOrientation.ROTATED_RIGHT | 将舞台方向设置为向右旋转。 |
StageOrientation.ROTATED_LEFT | 将舞台方向设置为向左旋转。 |
StageOrientation.UPSIDE_DOWN | 将舞台方向设置为倒置翻转。 |
不要将此参数设置为 StageOrientation.UNKNOWN
或表中未列出的任何其他字符串值。
要检查是否支持不断更改的设备方向,请检查 Stage.supportsOrientantionChange
属性的值。检查 supportedOrientations
属性提供的列表,以确定当前设备支持哪些方向。
设置方向是一个异步操作。它不保证您在调用 setOrientation()
方法后立即完成。为 orientationChange
事件添加一个事件侦听器,以确定何时完成方向更改。
重要说明:在 AIR 2.6 之前,Android 设备上不支持 setOrientation()
方法。
setOrientation()
方法不会 导致调度 orientationChanging
事件。
参数
newOrientation:String — 新的舞台方向。
|
事件
orientationChange: — 作为对 setOrientation() 方法调用的结果,舞台已调整大小。
|
引发
ArgumentError — 作为 newOrientation 参数传递的值无效。此值必须与 StageOriention 类中定义的一个常量匹配,但 StageOrientation.UNKNOWN 常量除外。
|
相关 API 元素
swapChildrenAt | () | 方法 |
override public function swapChildrenAt(index1:int, index2:int):void
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
在子级列表中两个指定的索引位置,交换子对象的 Z 轴顺序(前后顺序)。显示对象容器中所有其他子对象的索引位置保持不变。
参数
index1:int — 第一个子对象的索引位置。
| |
index2:int — 第二个子对象的索引位置。
|
引发
SecurityError — 调用 Stage 对象的 swapChildrenAt() 方法会因任何调用方没有与要互换的任一对象的所有者位于同一安全沙箱而引发异常。为避免出现这种情况,对象所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
willTrigger | () | 方法 |
override public function willTrigger(type:String):Boolean
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9 |
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。将指定类型的事件调度给此 EventDispatcher 对象或其任一后代时,如果在事件流的任何阶段触发了事件侦听器,则此方法返回 true
。
hasEventListener()
与 willTrigger()
方法的区别是:hasEventListener()
只检查它所属的对象,而 willTrigger()
方法检查整个事件流以查找由 type
参数指定的事件。
当从 LoaderInfo 对象调用 willTrigger()
时,只考虑调用方可以访问的侦听器。
参数
type:String — 事件的类型。
|
Boolean — 如果将会触发指定类型的侦听器,则值为 true ;否则,值为 false 。
|
引发
SecurityError — 调用 Stage 对象的 willTrigger() 方法会因任何调用方没有与 Stage 所有者(主 SWF 文件)位于同一个安全沙箱而引发异常。为避免出现这种情况,Stage 的所有者可以通过调用 Security.allowDomain() 方法或 Security.allowInsecureDomain() 方法来向域的调用方授予权限。有关详细信息,请参阅《ActionScript 3.0 开发人员指南》中的“安全性”一章。
|
browserZoomChange | 事件 |
flash.events.Event
属性 Event.type =
flash.events.Event.BROWSER_ZOOM_CHANGE
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 15 |
当 Stage 对象的 browserZoomFactor
属性发生更改时调度。
Event.BROWSER_ZOOM_CHANGE
常量定义 browserZoomChange
事件对象的 type
属性的值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | Stage 实例。 |
fullScreen | 事件 |
flash.events.FullScreenEvent
属性 FullScreenEvent.type =
flash.events.FullScreenEvent.FULL_SCREEN
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9.0.28.0, Flash Lite 4 |
当 Stage 对象进入或离开全屏模式时调度。可以通过 ActionScript、或用户调用键盘快捷键或者当前焦点离开全屏窗口来启动全屏模式的更改。
FullScreenEvent.FULL_SCREEN
常量定义 fullScreen
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
fullScreen | 如果显示状态为全屏,则为 true ;如果正常显示,则为 false 。 |
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | Stage 对象。 |
mouseLeave | 事件 |
flash.events.Event
属性 Event.type =
flash.events.Event.MOUSE_LEAVE
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
当指针移出舞台区域时由 Stage 对象调度。如果按下鼠标按钮,则不调度此事件。
Event.MOUSE_LEAVE
常量定义 mouseLeave
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | Stage 对象。target 不一定是显示列表中注册此事件侦听器的对象。请使用 currentTarget 属性来访问显示列表中当前正在处理此事件的对象。 |
orientationChange | 事件 |
flash.events.StageOrientationEvent
属性 StageOrientationEvent.type =
flash.events.StageOrientationEvent.ORIENTATION_CHANGE
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2.0 |
当舞台方向更改时,由 Stage 对象调度。
当用户旋转设备、打开滑出式键盘或调用 setAspectRatio()
时,可能发生方向更改。
注意:如果 autoOrients
属性为 false
,则在设备旋转时舞台方向不会更改。因此,仅在 autoOrients
为 true
时,才会为设备方向调度 StageOrientationEvents。
ORIENTATION_CHANGE
常量定义 orientationChange
事件对象的 type
属性的值。此事件具有以下属性:
属性 | 值 |
---|---|
afterOrientation | 新的舞台方向。 |
beforeOrientation | 舞台的旧方向。 |
target | 调度方向更改的 Stage 对象。 |
bubbles | true |
currentTarget | 表示当前正在使用事件侦听器处理该 Event 对象的对象。 |
cancelable | false ;现在已经太迟,不能取消更改。 |
orientationChanging | 事件 |
flash.events.StageOrientationEvent
属性 StageOrientationEvent.type =
flash.events.StageOrientationEvent.ORIENTATION_CHANGING
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 2.0 |
舞台方向开始变化后,由 Stage 对象调度。
重要:在 Android 设备上不调度 orientationChanging 事件。
注意:
-
如果
autoOrients
属性为false
,则在设备旋转时舞台方向不会改变。因此,仅在autoOrients
为true
时,才会为设备方向调度 StageOrientationEvents。 -
当使用
setOrientation()
方法以编程方式设置方向时,则不会 调度orientationChanging
事件。
ORIENTATION_CHANGING
常量定义 orientationChanging
事件对象的 type
属性的值。此事件具有以下属性:
属性 | 值 |
---|---|
afterOrientation | 新的舞台方向。 |
beforeOrientation | 舞台的旧方向。 |
target | 调度方向更改的 Stage 对象。 |
bubbles | true |
currentTarget | 表示当前正在使用事件侦听器处理该 Event 对象的对象。 |
cancelable | true |
resize | 事件 |
flash.events.Event
属性 Event.type =
flash.events.Event.RESIZE
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 9, Flash Lite 4 |
当 Stage 对象的 scaleMode
属性设置为 StageScaleMode.NO_SCALE
且 SWF 文件大小经过重新调整时进行调度。在 Flash Player 15 和更高版本中,当全屏模式下屏幕方向更改时也会调度。
Event.RESIZE
常量定义 resize
事件对象的 type
属性的值。
此事件具有以下属性:
属性 | 值 |
---|---|
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | Stage 对象。 |
stageVideoAvailability | 事件 |
flash.events.StageVideoAvailabilityEvent
属性 StageVideoAvailabilityEvent.type =
flash.events.StageVideoAvailabilityEvent.STAGE_VIDEO_AVAILABILITY
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 1.0, Flash Player 10.2 |
当 stageVideos 属性更改时,由 Stage 对象调度。
定义stageVideoAvailability
事件对象的 type
属性值。
此事件具有以下属性:
属性 | 值 |
---|---|
availability | 该事件报告的状态。 |
bubbles | false |
cancelable | false ;没有要取消的默认行为。 |
currentTarget | 当前正在处理此事件的对象。 |
target | 报告舞台视频可用性的 Stage 对象。 |
示例 ( 如何使用本示例 )
StageExample
类在激活舞台或调整舞台大小时调度事件。执行下列步骤可完成此操作:
- 无论 Flash Player 窗口的大小如何,类的构造函数都会首先将 Flash 应用程序设置为固定大小,然后使用
activateHandler()
和resizeHandler()
方法添加两个事件侦听器。 - 用鼠标左键单击后,便可运行
activateHandler()
方法。 - 当调整舞台大小时,便可运行
resizeHandler()
方法。
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; public class StageExample extends Sprite { public function StageExample() { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; stage.addEventListener(Event.ACTIVATE, activateHandler); stage.addEventListener(Event.RESIZE, resizeHandler); } private function activateHandler(event:Event):void { trace("activateHandler: " + event); } private function resizeHandler(event:Event):void { trace("resizeHandler: " + event); trace("stageWidth: " + stage.stageWidth + " stageHeight: " + stage.stageHeight); } } }
VsyncStateChangeAvailability | 事件 |
flash.events.VsyncStateChangeAvailabilityEvent
属性 VsyncStateChangeAvailabilityEvent.type =
flash.events.VsyncStateChangeAvailabilityEvent
语言版本: | ActionScript 3.0 |
运行时版本: | AIR 29.0 |
当 vsync 属性的状态更改时,由 Stage 对象调度。
定义 VsyncStateChangeAvailabilityEvent
事件对象的 type 属性的值。
示例 ( 如何使用本示例 )
VsyncExample
类调度事件。执行下列步骤可完成此操作:
- 构造函数首先触发 Stage 事件
VsyncStateChangeAvailabilityEvent
- 然后,调用方法
onVsyncStateChangeAvailability
,以检查VsyncStateChangeAvailabilityEvent
是否可用。 - 如果可用,则可以触发 Stage 对象的 vsync 状态,或者将
vsyncEnable
属性的值保持只读状态。 - 如果触发该事件并且仅在触发该事件时,可触发 vsync 的值。
package { import flash.display.Sprite; import flash.events.VsyncStateChangeAvailabilityEvent public class VsyncExample extends Sprite { public function VsyncExample() { stage.addEventListener(VsyncStateChangeAvailabilityEvent.VSYNC_STATE_CHANGE_AVAILABILITY, onVsyncStateChangeAvailability); } public function onVsyncStateChangeAvailability(event:VsyncStateChangeAvailabilityEvent):void { if (event.available) { // vsyncEnabled is now changeable and can be turned off. stage.vsyncEnabled = false; // Now, AS can change VSYNC state because event.available is true trace("vsyncEnabled of Stage object is changeable"); } else { // vsyncEnabled is not changeable now. This could be due to fallback to software rendering, for example. stage.vsyncEnabled = false; // This will be ignored because event.available is now false trace("vsyncEnabled of Stage object is read-only"); trace("Current value of vsyncEnabled of Stage object is "+ stage.vsyncEnabled); } } } }
Tue Jun 12 2018, 11:04 AM Z