包 | mx.core |
接口 | public interface IFlexDisplayObject extends IBitmapDrawable , IEventDispatcher |
实现器 | BitmapAsset, ButtonAsset, DefaultDragImage, MovieClipAsset, MovieClipLoaderAsset, ProgrammaticSkin, SpriteAsset, SystemManager, TextFieldAsset, UIComponent |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
属性 | 由以下参数定义 | ||
---|---|---|---|
accessibilityProperties : AccessibilityProperties
此显示对象的当前辅助功能选项。 | IFlexDisplayObject | ||
alpha : Number
表示指定对象的 Alpha 透明度值。 | IFlexDisplayObject | ||
blendMode : String
BlendMode 类中的一个值,用于指定要使用的混合模式。 | IFlexDisplayObject | ||
cacheAsBitmap : Boolean
如果设置为 true,则 Flash 运行时将缓存显示对象的内部位图表示形式。 | IFlexDisplayObject | ||
filters : Array
包含当前与显示对象关联的每个滤镜对象的索引数组。 | IFlexDisplayObject | ||
height : Number
表示显示对象的高度,以像素为单位。 | IFlexDisplayObject | ||
loaderInfo : LoaderInfo [只读]
返回一个 LoaderInfo 对象,其中包含加载此显示对象所属的文件的相关信息。 | IFlexDisplayObject | ||
mask : DisplayObject
调用显示对象被指定的 mask 对象遮罩。 | IFlexDisplayObject | ||
measuredHeight : Number [只读]
此对象的测量高度。 | IFlexDisplayObject | ||
measuredWidth : Number [只读]
此对象的测量宽度。 | IFlexDisplayObject | ||
mouseX : Number [只读]
表示此鼠标或用户输入设备位置的 x 坐标,以像素为单位。 | IFlexDisplayObject | ||
mouseY : Number [只读]
表示此鼠标或用户输入设备位置的 y 坐标,以像素为单位。 | IFlexDisplayObject | ||
name : String
表示 DisplayObject 的实例名称。 | IFlexDisplayObject | ||
opaqueBackground : Object
指定显示对象是否由于具有某种背景颜色而不透明。 | IFlexDisplayObject | ||
parent : DisplayObjectContainer [只读]
表示包含此显示对象的 DisplayObjectContainer 对象。 | IFlexDisplayObject | ||
root : DisplayObject [只读]
对于加载的 SWF 文件中的显示对象,root 属性是此 SWF 文件所表示的显示列表树结构部分中的顶级显示对象。 | IFlexDisplayObject | ||
rotation : Number
表示 DisplayObject 实例距其原始方向的旋转程度,以度为单位。 | IFlexDisplayObject | ||
scale9Grid : Rectangle
当前有效的缩放网格。 | IFlexDisplayObject | ||
scaleX : Number
表示从注册点开始应用的对象的水平缩放比例(百分比)。 | IFlexDisplayObject | ||
scaleY : Number
表示从对象注册点开始应用的对象的垂直缩放比例(百分比)。 | IFlexDisplayObject | ||
scrollRect : Rectangle
显示对象的滚动矩形范围。 | IFlexDisplayObject | ||
stage : Stage [只读]
显示对象的舞台。 | IFlexDisplayObject | ||
transform : flash.geom:Transform
一个对象,具有与显示对象的矩阵、颜色转换和像素范围有关的属性。 | IFlexDisplayObject | ||
visible : Boolean
显示对象是否可见。 | IFlexDisplayObject | ||
width : Number
表示显示对象的宽度,以像素为单位。 | IFlexDisplayObject | ||
x : Number
表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标。 | IFlexDisplayObject | ||
y : Number
表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 y 坐标。 | IFlexDisplayObject |
方法 | 由以下参数定义 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | IEventDispatcher | ||
将事件调度到事件流中。 | IEventDispatcher | ||
返回一个矩形,该矩形定义相对于 targetCoordinateSpace 对象坐标系的显示对象区域。 | IFlexDisplayObject | ||
返回一个矩形,该矩形根据 targetCoordinateSpace 参数定义的坐标系定义显示对象的边界,但不包括形状上的任何笔触。 | IFlexDisplayObject | ||
将 point 对象从舞台(全局)坐标转换为显示对象的(本地)坐标。 | IFlexDisplayObject | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | IEventDispatcher | ||
计算显示对象的边框,以确定它是否与 obj 显示对象的边框重叠或相交。 | IFlexDisplayObject | ||
计算显示对象,以确定它是否与 x 和 y 参数指定的点重叠或相交。 | IFlexDisplayObject | ||
将 point 对象从显示对象的(本地)坐标转换为舞台(全局)坐标。 | IFlexDisplayObject | ||
将此对象移动到指定的 x 和 y 坐标。 | IFlexDisplayObject | ||
从 EventDispatcher 对象中删除侦听器。 | IEventDispatcher | ||
设置此对象的实际大小。 | IFlexDisplayObject | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | IEventDispatcher |
accessibilityProperties | 属性 |
accessibilityProperties:AccessibilityProperties
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
此显示对象的当前辅助功能选项。如果您修改 accessibilityProperties
属性或 accessibilityProperties
内部的任何字段,则必须调用 Accessibility.updateProperties()
方法以使您的更改生效。
请注意:对于在 Flash 创作环境中创建的对象,将使用您在“辅助功能”面板中为该对象输入的所有信息来填充 accessibilityProperties
的值。
实现
public function get accessibilityProperties():AccessibilityProperties
public function set accessibilityProperties(value:AccessibilityProperties):void
alpha | 属性 |
blendMode | 属性 |
blendMode:String
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
BlendMode 类中的一个值,用于指定要使用的混合模式。 内部绘制位图的方法有两种。如果启用了混合模式或外部剪辑遮罩,则将通过向矢量渲染器添加有位图填充的正方形来绘制位图。 如果尝试将此属性设置为无效值,则 Flash 运行时会将此值设置为 BlendMode.NORMAL
。
blendMode
属性影响显示对象的每个像素。每个像素都由三种原色(红色、绿色和蓝色)组成,每种原色的值介于 0x00 和 0xFF 之间。Flash Player 或 Adobe AIR 将影片剪辑中一个像素的每种原色与背景中像素的对应颜色进行比较。例如,如果 blendMode
设置为 BlendMode.LIGHTEN
,则 Flash Player 或 Adobe AIR 会将显示对象的红色值与背景的红色值进行比较,然后使用两者中较亮的一种颜色作为显示颜色的红色成分的值。
下表将对 blendMode
设置进行说明。BlendMode 类定义可使用的字符串值。表中的插图显示应用于交叠于显示对象 (1) 之上的圆形显示对象 (2) 的 blendMode
值。
BlendMode 常量 | 插图 | 说明 |
---|---|---|
BlendMode.NORMAL | 该显示对象出现在背景前面。显示对象的像素值将覆盖背景的像素值。在显示对象为透明的区域,背景是可见的。 | |
BlendMode.LAYER | 强制为该显示对象创建一个透明度组。这意味着首先在临时缓冲区中预构建显示对象,然后再进行下一步处理。如果显示对象是使用位图缓存进行预缓存的,或显示对象是至少带有一个子对象(具有 BlendMode.NORMAL 以外的 blendMode 设置)的显示对象容器,则这将自动完成。在 GPU 呈现下不支持。
| |
BlendMode.MULTIPLY | 将显示对象原色的值与背景颜色的值相乘,然后通过除以 0xFF 进行标准化,从而得到较暗的颜色。此设置通常用于阴影和深度效果。
例如,如果显示对象中一个像素的某个原色(例如红色)与背景中对应的像素颜色的值均为 0x88,则相乘结果为 0x4840。除以 0xFF 将得到该原色的值 0x48,这是比显示对象或背景颜色暗的阴影。 | |
BlendMode.SCREEN | 将显示对象颜色的补色(反色)与背景颜色的补色相乘,会产生漂白效果。此设置通常用于产生加亮效果或用来删除显示对象的黑色区域。 | |
BlendMode.LIGHTEN | 在显示对象原色和背景颜色中选择相对较亮的颜色(具有较大值的颜色)。此设置通常用于叠加类型。
例如,如果显示对象的某个像素的 RGB 值为 0xFFCC33,背景像素的 RGB 值为 0xDDF800,则显示像素的结果 RGB 值为 0xFFF833(因为 0xFF > 0xDD,0xCC < 0xF8,且 0x33 > 0x00 = 33)。在 GPU 呈现下不支持。 | |
BlendMode.DARKEN | 在显示对象原色和背景颜色中选择相对较暗的颜色(具有较小值的颜色)。此设置通常用于叠加类型。
例如,如果显示对象的某个像素的 RGB 值为 0xFFCC33,背景像素的 RGB 值为 0xDDF800,则显示像素的结果 RGB 值为 0xDDCC00(因为 0xFF > 0xDD,0xCC < 0xF8,且 0x33 > 0x00 = 33)。在 GPU 呈现下不支持。 | |
BlendMode.DIFFERENCE | 将显示对象的原色与背景颜色进行比较,然后从较亮的原色值中减去较暗的原色值。此设置通常用于得到更明亮的颜色。
例如,如果显示对象的某个像素的 RGB 值为 0xFFCC33,背景像素的 RGB 值为 0xDDF800,则显示像素的结果 RGB 值为 0x222C33(因为 0xFF - 0xDD = 0x22,0xF8 - 0xCC = 0x2C,且 0x33 - 0x00 = 0x33)。 | |
BlendMode.ADD | 将显示对象的原色值添加到它的背景颜色中,上限值为 0xFF。此设置通常用于使两个对象间的加亮溶解产生动画效果。
例如,如果显示对象的某个像素的 RGB 值为 0xAAA633,背景像素的 RGB 值为 0xDD2200,则显示像素的结果 RGB 值为 0xFFC833(因为 0xAA + 0xDD > 0xFF,0xA6 + 0x22 = 0xC8,且 0x33 + 0x00 = 0x33)。 | |
BlendMode.SUBTRACT | 从背景颜色的值中减去显示对象原色的值,下限值为 0。此设置通常用于使两个对象间的变暗溶解产生动画效果。
例如,如果显示对象的某个像素的 RGB 值为 0xAA2233,背景像素的 RGB 值为 0xDDA600,则显示像素的结果 RGB 值为 0x338400(因为 0xDD - 0xAA = 0x33,0xA6 - 0x22 = 0x84 且 0x00 - 0x33 < 0x00)。 | |
BlendMode.INVERT | 反转背景。 | |
BlendMode.ALPHA | 将显示对象的每个像素的 Alpha 值应用于背景。这要求将父显示对象的 blendMode 设置设置为 BlendMode.LAYER 。例如,在此插图中,父显示对象是一个白色背景,它具有 blendMode = BlendMode.LAYER 。在 GPU 呈现下不支持。 | |
BlendMode.ERASE | 根据显示对象的 Alpha 值擦除背景。这要求将父显示对象的 blendMode 设置为 BlendMode.LAYER 。例如,在此插图中,父显示对象是一个白色背景,它具有 blendMode = BlendMode.LAYER 。在 GPU 呈现下不支持。 | |
BlendMode.OVERLAY | 根据背景的暗度调整每个像素的颜色。如果背景灰度值高于 50%,则显示对象和背景颜色进行叠加,从而产生较亮的颜色。如果背景灰度值低于 50%,则颜色相乘,从而产生较暗的颜色。此设置通常用于获得阴影效果。在 GPU 呈现下不支持。 | |
BlendMode.HARDLIGHT | 根据显示对象的暗度调整每个像素的颜色。如果显示对象灰度值高于 50%,则显示对象和背景颜色进行叠加,从而产生较亮的颜色。如果显示对象灰度值低于 50%,则颜色相乘,从而产生较暗的颜色。此设置通常用于获得阴影效果。在 GPU 呈现下不支持。 | |
BlendMode.SHADER | 不适用 | 使用自定义着色器例程调整颜色。将使用的着色器指定为赋予 blendShader 属性的 Shader 实例。如果将显示对象的 blendShader 属性设置为 Shader 实例,则会将显示对象的 blendMode 属性自动设置为 BlendMode.SHADER 。如果在未首先设置 blendShader 属性的情况下将 blendMode 属性设置为 BlendMode.SHADER ,则 blendMode 属性会设置为 BlendMode.NORMAL 。在 GPU 呈现下不支持。 |
实现
public function get blendMode():String
public function set blendMode(value:String):void
cacheAsBitmap | 属性 |
cacheAsBitmap:Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
如果设置为 true
,则 Flash 运行时将缓存显示对象的内部位图表示形式。此缓存可以提高包含复杂矢量内容的显示对象的性能。
具有已缓存位图的显示对象的所有矢量数据都将被绘制到位图而不是主显示。如果 cacheAsBitmapMatrix
为空或不受支持,位图将作为与最近的像素边界对齐的未拉伸且未旋转的像素复制到主显示。像素按一对一与父对象进行映射。如果位图的边界发生更改,则将重新创建位图而不会拉伸它。
如果支持 cacheAsBitmapMatrix
,并且它为非空,则对象将使用该矩阵绘制到屏幕范围外的位图,并且使用该呈现的拉伸和/或旋转结果将对象绘制到主显示。
除非将 cacheAsBitmap
属性设置为 true
,否则不会创建内部位图。
将 cacheAsBitmap
属性设置为 true
后,呈现并不更改,但是,显示对象将自动执行像素贴紧。动画速度可能会大大加快,具体取决于矢量内容的复杂性。
只要对显示对象(当其 filter
数组不为空时)应用滤镜,cacheAsBitmap
属性就自动设置为 true
,而且如果对显示对象应用了滤镜,即使将该属性设置为 false
,也会将该显示对象的 cacheAsBitmap
报告为 true
。如果清除显示对象的所有滤镜,则 cacheAsBitmap
设置将更改为它上次的设置。
在下面的情况下,即使将 cacheAsBitmap
属性设置为 true
,显示对象也不使用位图,而是从矢量数据呈现:
- 位图过大。在 AIR 1.5 和 Flash Player 10 中,位图图像的最大宽度或高度为 8,191 像素,并且像素总数不能超过 16,777,215 像素。(因此,如果位图图像的宽度为 8,191 像素,则其高度只能为 2,048 像素。)在 Flash Player 9 及早期版本中,高度最大为 2880 像素,宽度最大为 2,880 像素。
- 位图无法分配(内存不足错误)。
最好将 cacheAsBitmap
属性与主要具有静态内容且不频繁缩放和旋转的影片剪辑一起使用。对于这样的影片剪辑,在转换影片剪辑时(更改其 x 和 y 位置时),cacheAsBitmap
可以提高性能。
实现
public function get cacheAsBitmap():Boolean
public function set cacheAsBitmap(value:Boolean):void
filters | 属性 |
filters:Array
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
包含当前与显示对象关联的每个滤镜对象的索引数组。flash.filters 包中的多个类定义了可使用的特定滤镜。
在设计时或在运行时,可通过使用 ActionScript 代码在 Flash Professional 中应用筛选器。要通过使用 ActionScript 应用滤镜,您必须制作整个 filters
数组的临时副本,修改临时数组,然后将临时数组的值分配回 filters
数组。无法直接将新滤镜对象添加到 filters
数组。
要通过使用 ActionScript 添加滤镜,请执行以下步骤(假定目标显示对象名为 myDisplayObject
):
- 使用所选滤镜类的构造函数方法创建一个新的滤镜对象。
- 将
myDisplayObject.filters
数组的值分配给临时数组,例如一个名为myFilters
的数组。 - 将新的滤镜对象添加到临时数组
myFilters
。 - 将临时数组的值分配给
myDisplayObject.filters
数组。
如果 filters
数组未定义,则无需使用临时数组。相反,您可以直接赋值包含一个或多个已创建的滤镜对象的一个数组文本值。“示例”部分的第一个示例通过使用处理已定义和未定义的 filters
数组的代码来添加投影滤镜。
要修改现有的滤镜对象,必须使用修改 filters
数组的副本的技术:
- 将
filters
数组的值分配给临时数组,例如一个名为myFilters
的数组。 - 使用临时数组
myFilters
修改属性。例如,如果要设置数组中第一个滤镜的品质属性,可以使用以下代码:myFilters[0].quality = 1;
- 将临时数组的值分配给
filters
数组。
在加载时,如果显示对象具有关联的滤镜,则将它标记为像透明位图那样缓存自身。从此时起,只要显示对象具有有效的滤镜列表,播放器就会将显示对象缓存为位图。此源位图用作滤镜效果的源图像。每个显示对象通常有两个位图:一个包含原始未过滤的源显示对象,另一个是过滤后的最终图像。呈现时使用最终图像。只要显示对象不发生更改,最终图像就不需要更新。
flash.filters 包含有滤镜类。例如,要创建 DropShadow 滤镜,请输入:
import flash.filters.DropShadowFilter var myFilter:DropShadowFilter = new DropShadowFilter (distance, angle, color, alpha, blurX, blurY, quality, inner, knockout)
您可以使用 is
运算符确定分配给 filter
数组中每个索引位置的滤镜的类型。例如,以下代码显示如何确定是 DropShadowFilter 的 filters
数组中第一个滤镜的位置:
import flash.text.TextField; import flash.filters.*; var tf:TextField = new TextField(); var filter1:DropShadowFilter = new DropShadowFilter(); var filter2:GradientGlowFilter = new GradientGlowFilter(); tf.filters = [filter1, filter2]; tf.text = "DropShadow index: " + filterPosition(tf, DropShadowFilter).toString(); // 0 addChild(tf) function filterPosition(displayObject:DisplayObject, filterClass:Class):int { for (var i:uint = 0; i < displayObject.filters.length; i++) { if (displayObject.filters[i] is filterClass) { return i; } } return -1; }
注意:由于无法直接将新滤镜对象添加到 DisplayObject.filters
数组,因此以下代码对名为 myDisplayObject
的目标显示对象不起作用:
myDisplayObject.filters.push(myDropShadow);
实现
public function get filters():Array
public function set filters(value:Array):void
height | 属性 |
height:Number
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
表示显示对象的高度,以像素为单位。高度是根据显示对象内容的范围来计算的。如果您设置了 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
设置为其他值,也是这样。
实现
public function get height():Number
public function set height(value:Number):void
loaderInfo | 属性 |
loaderInfo:LoaderInfo
[只读] 语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
返回一个 LoaderInfo 对象,其中包含加载此显示对象所属的文件的相关信息。loaderInfo
属性仅为 SWF 文件的根显示对象或已加载的位图(而不是使用 ActionScript 绘制的位图)定义。要查找与包含名为 myDisplayObject
的显示对象的 SWF 文件相关的 loaderInfo
对象,请使用 myDisplayObject.root.loaderInfo
。
大的 SWF 文件可以通过调用 this.root.loaderInfo.addEventListener(Event.COMPLETE, func)
来监控其下载。
实现
public function get loaderInfo():LoaderInfo
mask | 属性 |
mask:DisplayObject
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
调用显示对象被指定的 mask
对象遮罩。要确保当舞台缩放时蒙版仍然有效,mask
显示对象必须处于显示列表的活动部分。但不绘制 mask
对象本身。将 mask
设置为 null
可删除蒙版。
要能够缩放遮罩对象,它必须在显示列表中。要能够拖动蒙版 Sprite 对象(通过调用其 startDrag()
方法),它必须在显示列表中。要为基于 sprite 正在调度的 mouseDown
事件调用 startDrag()
方法,请将 sprite 的 buttonMode
属性设置为 true
。
通过将 cacheAsBitmap
属性设置为 true
,将 cacheAsBitmapMatrix
属性设置为 Matrix 对象来缓存显示对象时,遮罩对象和被遮罩的显示对象必须是同一缓存位图的一部分。因此,如果缓存显示对象,则遮罩必须是显示对象的子级。如果缓存显示列表上的显示对象的祖代,则遮罩必须是该祖代的子级或其后代之一。如果缓存遮罩对象的多个祖代,则遮罩必须是显示列表中离遮罩对象最近的缓存容器的后代。
注意:单个 mask
对象不能用于遮罩多个执行调用的显示对象。在将 mask
分配给第二个显示对象时,会撤消其作为第一个对象的遮罩,该对象的 mask
属性将变为 null
。
实现
public function get mask():DisplayObject
public function set mask(value:DisplayObject):void
measuredHeight | 属性 |
measuredWidth | 属性 |
mouseX | 属性 |
mouseY | 属性 |
name | 属性 |
opaqueBackground | 属性 |
opaqueBackground:Object
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
指定显示对象是否由于具有某种背景颜色而不透明。透明的位图包含 Alpha 通道数据,并以透明的方式进行绘制。不透明位图没有 Alpha 通道(呈现速度比透明位图快)。如果位图是不透明的,则您可以指定要使用的其自己的背景颜色。
如果设置为某个数值,则表面是不透明的,并且带有该数值指定的 RGB 背景颜色。如果设置为 null
(默认值),则显示对象将有透明背景。
opaqueBackground
属性主要与 cacheAsBitmap
属性一起使用,以优化呈现。对于 cacheAsBitmap
属性设置为 true 的显示对象,设置 opaqueBackground
可以提高呈现性能。
如果在 shapeFlag
参数设置为 true
时调用 hitTestPoint()
方法,则不透明的背景区域不 匹配。
不透明背景区域不响应鼠标事件。
实现
public function get opaqueBackground():Object
public function set opaqueBackground(value:Object):void
parent | 属性 |
parent:DisplayObjectContainer
[只读] 语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
表示包含此显示对象的 DisplayObjectContainer 对象。使用 parent
属性可以指定高于显示列表层次结构中当前显示对象的显示对象的相对路径。
可以使用 parent
在显示列表中上移多个级别,如下所示:
this.parent.parent.alpha = 20;
实现
public function get parent():DisplayObjectContainer
root | 属性 |
root:DisplayObject
[只读] 语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
对于加载的 SWF 文件中的显示对象,root
属性是此 SWF 文件所表示的显示列表树结构部分中的顶级显示对象。对于代表已加载图像文件的位图对象,root
属性就是位图对象本身。对于第一个加载的 SWF 文件的主类的实例,root
属性就是显示对象本身。Stage 对象的 root
属性是 Stage 对象本身。对于任何未添加到显示列表的显示对象,root
属性设置为 null
,除非它已添加到符合以下条件的显示对象容器:不在显示列表中,但属于已加载 SWF 文件中顶级显示对象的子级。
例如,如果您通过调用 Sprite()
构造函数方法创建新的 Sprite 对象,则其 root
属性将为 null
,除非您将其添加到显示列表中(或添加到不在显示列表中但属于 SWF 文件中顶级显示对象的子级的显示对象容器中)。
对于加载的 SWF 文件,即使用于加载文件的 Loader 对象未在显示列表中,SWF 文件中的顶级显示对象也会为其本身设置 root
属性。在 Loader 对象添加为对其设置 root
属性的显示对象的子级前,它不会设置自己的 root
属性。
实现
public function get root():DisplayObject
rotation | 属性 |
rotation:Number
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
表示 DisplayObject 实例距其原始方向的旋转程度,以度为单位。从 0 到 180 的值表示顺时针方向旋转;从 0 到 -180 的值表示逆时针方向旋转。对于此范围之外的值,可以通过加上或减去 360 获得该范围内的值。例如,my_video.rotation = 450
语句与 my_video.rotation = 90
是相同的。
实现
public function get rotation():Number
public function set rotation(value:Number):void
scale9Grid | 属性 |
scale9Grid:Rectangle
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
当前有效的缩放网格。如果设置为 null
,则在应用任何缩放转换时,将正常缩放整个显示对象。
当定义 scale9Grid
属性时,该显示对象被分割到以 scale9Grid
矩形为基础的具有九个区域的网格中,该矩形定义网格的中心区域。网格的其他八个区域如下所示:
- 矩形外的左上角
- 矩形上方的区域
- 矩形外的右上角
- 矩形左侧的区域
- 矩形右侧的区域
- 矩形外的左下角
- 矩形下方的区域
- 矩形外的右下角
可以认为中心区域(由矩形定义)之外的八个区域类似于在缩放时已应用特殊规则的图片帧。
在设置 scale9Grid
属性并缩放显示对象后,会正常缩放所有文本和渐变;但是,对于其他类型的对象,将应用以下规则:
- 正常缩放中心区域中的内容。
- 不缩放转角中的内容。
- 仅水平缩放顶部和底部区域中的内容。仅垂直缩放左侧和右侧区域中的内容。
- 拉伸所有填充(包括位图、视频和渐变)以适应其形状。
如果旋转显示对象,则所有后续缩放都是正常的(并会忽略 scale9Grid
属性)。
例如,请考虑以下显示对象和作为该显示对象的 scale9Grid
属性应用的矩形:
显示对象。 |
红色矩形显示 |
缩放或拉伸显示对象时,矩形内的对象正常缩放,但是矩形外的对象则按照 scale9Grid
规则进行缩放:
缩放到 75%: | |
缩放到 50%: | |
缩放到 25%: | |
水平拉伸 150%: |
设置 scale9Grid
的常见用法是设置用作组件的显示对象,当缩放该组件时,其中的边缘区域保持相同的宽度。
实现
public function get scale9Grid():Rectangle
public function set scale9Grid(value:Rectangle):void
scaleX | 属性 |
scaleY | 属性 |
scrollRect | 属性 |
scrollRect:Rectangle
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
显示对象的滚动矩形范围。显示对象被裁切为矩形定义的大小,当您更改 scrollRect
对象的 x
和 y
属性时,它会在矩形内滚动。
scrollRect
Rectangle 对象的属性使用显示对象的坐标空间,并缩放到像整个显示对象一样。滚动显示对象上已裁切窗口的转角范围是显示对象的原点 (0,0) 和矩形的宽度和高度定义的点。它们不按原点居中,而是使用原点定义区域的左上角。滚动的显示对象始终以整像素为增量进行滚动。
您可以通过设置 scrollRect
Rectangle 对象的 x
属性来左右滚动对象, 还可以通过设置 scrollRect
对象的 y
属性来上下滚动对象。如果显示对象旋转了 90 度,并且您左右滚动它,则实际上显示对象会上下滚动。
请注意,仅会在渲染对象时处理 scrollRect
属性的更改。因此,如果在修改 scrollRect
方法后立即调用类似 localToGlobal
这样的方法,则该方法可能不会产生预期的结果。
注意:从 Flash Player 11.4/AIR 3.4 开始,矩形的宽度或高度如为负值,系统会将其改为 0。
实现
public function get scrollRect():Rectangle
public function set scrollRect(value:Rectangle):void
stage | 属性 |
transform | 属性 |
transform:flash.geom:Transform
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
一个对象,具有与显示对象的矩阵、颜色转换和像素范围有关的属性。在 Transform 类的条目中对特定属性 matrix、colorTransform 和三个只读属性(concatenatedMatrix
、concatenatedColorTransform
和 pixelBounds
)进行了说明。
transform 对象的每个属性本身都是一个对象。此概念很重要,因为设置 matrix 或 colorTransform 对象的新值的唯一方法是,创建新对象并将该对象复制到 transform.matrix 或 transform.colorTransform 属性。
例如,要增加显示对象矩阵的 tx
值,您必须制作整个矩阵对象的副本,然后将新对象复制到 transform 对象的 matrix 属性中:
var myMatrix:Matrix = myDisplayObject.transform.matrix;
myMatrix.tx += 10;
myDisplayObject.transform.matrix = myMatrix;
不能直接设置 tx
属性。下面的代码对 myDisplayObject
不起作用:
myDisplayObject.transform.matrix.tx += 10;
您也可以复制整个 transform 对象并为其赋予另一个显示对象的 transform 属性。例如,下面的代码将整个 transform 对象从 myOldDisplayObj
复制到 myNewDisplayObj
:
myNewDisplayObj.transform = myOldDisplayObj.transform;
现在,新显示对象 myNewDisplayObj
与旧显示对象 myOldDisplayObj
具有相同的矩阵、颜色转换和像素范围值。
请注意,AIR for TV 设备使用硬件加速(如果可用)进行颜色转换。
实现
public function get transform():flash.geom:Transform
public function set transform(value:flash.geom:Transform):void
visible | 属性 |
width | 属性 |
width:Number
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
表示显示对象的宽度,以像素为单位。宽度是根据显示对象内容的范围来计算的。如果您设置了 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
设置为其他值,也是这样。
实现
public function get width():Number
public function set width(value:Number):void
x | 属性 |
x:Number
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标。如果该对象位于具有变形的 DisplayObjectContainer 内,则它也位于包含 DisplayObjectContainer 的本地坐标系中。因此,对于逆时针旋转 90 度的 DisplayObjectContainer,该 DisplayObjectContainer 的子级将继承逆时针旋转 90 度的坐标系。对象的坐标指的是注册点的位置。
实现
public function get x():Number
public function set x(value:Number):void
y | 属性 |
y:Number
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 y 坐标。如果该对象位于具有变形的 DisplayObjectContainer 内,则它也位于包含 DisplayObjectContainer 的本地坐标系中。因此,对于逆时针旋转 90 度的 DisplayObjectContainer,该 DisplayObjectContainer 的子级将继承逆时针旋转 90 度的坐标系。对象的坐标指的是注册点的位置。
实现
public function get y():Number
public function set y(value:Number):void
getBounds | () | 方法 |
public function getBounds(targetCoordinateSpace:DisplayObject):Rectangle
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
返回一个矩形,该矩形定义相对于 targetCoordinateSpace
对象坐标系的显示对象区域。考虑以下代码,此代码显示了矩形的返回方式根据您传递给该方法的 targetCoordinateSpace
参数的不同而不同:
var container:Sprite = new Sprite(); container.x = 100; container.y = 100; this.addChild(container); var contents:Shape = new Shape(); contents.graphics.drawCircle(0,0,100); container.addChild(contents); trace(contents.getBounds(container)); // (x=-100, y=-100, w=200, h=200) trace(contents.getBounds(this)); // (x=0, y=0, w=200, h=200)
请注意:使用 localToGlobal()
和 globalToLocal()
方法可以分别将显示对象的本地坐标转换为显示坐标,或将显示坐标转换为本地坐标。
getBounds()
方法与 getRect()
方法类似;但是 getBounds()
方法返回的矩形包括形状的所有笔触,然而 getRect()
方法返回的矩形则不包括。例如,请参阅 getRect()
方法的说明。
参数
targetCoordinateSpace:DisplayObject — 定义要使用的坐标系的显示对象。
|
Rectangle — 定义与 targetCoordinateSpace 对象坐标系统相关的显示对象面积的矩形。
|
getRect | () | 方法 |
public function getRect(targetCoordinateSpace:DisplayObject):Rectangle
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
返回一个矩形,该矩形根据 targetCoordinateSpace
参数定义的坐标系定义显示对象的边界,但不包括形状上的任何笔触。getRect()
方法返回的值等于或小于由 getBounds()
方法返回的值。
请注意:使用 localToGlobal()
和 globalToLocal()
方法可以分别将显示对象的本地坐标转换为舞台坐标,或将舞台坐标转换为本地坐标。
参数
targetCoordinateSpace:DisplayObject — 定义要使用的坐标系的显示对象。
|
Rectangle — 定义与 targetCoordinateSpace 对象坐标系统相关的显示对象面积的矩形。
|
globalToLocal | () | 方法 |
public function globalToLocal(point:Point):Point
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
将 point
对象从舞台(全局)坐标转换为显示对象的(本地)坐标。
要使用此方法,请先创建 Point 类的一个实例。您分配的 x 和 y 值表示全局坐标,因为它们是相对于主显示区域的原点 (0,0) 的。然后将 Point 实例作为参数传递给 globalToLocal()
方法。该方法会返回一个新的 Point 对象,该对象具有相对于显示对象原点(而不是舞台原点)的 x 和 y 值。
参数
point:Point — 用 Point 类创建的对象。 该 Point 对象指定 x 和 y 坐标作为属性。
|
Point — 具有相对于显示对象的坐标的 Point 对象。
|
hitTestObject | () | 方法 |
public function hitTestObject(obj:DisplayObject):Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
计算显示对象的边框,以确定它是否与 obj
显示对象的边框重叠或相交。
参数
obj:DisplayObject — 要测试的显示对象。
|
Boolean — 如果显示对象的边框相交,则为 true ;否则为 false 。
|
hitTestPoint | () | 方法 |
public function hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
计算显示对象,以确定它是否与 x
和 y
参数指定的点重叠或相交。x
和 y
参数指定舞台的坐标空间中的点,而不是包含显示对象的显示对象容器中的点(除非显示对象容器是舞台)。
参数
x:Number — 要测试的此对象的 x 坐标。
| |
y:Number — 要测试的此对象的 y 坐标。
| |
shapeFlag:Boolean (default = false ) — 是检查对象 (true ) 的实际像素,还是检查边框 (false ) 的实际像素。
|
Boolean — 如果显示对象与指定的点重叠或相交,则为 true ;否则为 false 。
|
localToGlobal | () | 方法 |
public function localToGlobal(point:Point):Point
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
将 point
对象从显示对象的(本地)坐标转换为舞台(全局)坐标。
此方法允许您将任何给定的 x 和 y 坐标从相对于特定显示对象原点 (0,0) 的值(本地坐标)转换为相对于舞台原点的值(全局坐标)。
要使用此方法,请先创建 Point 类的一个实例。您分配的 x 和 y 的值表示本地坐标,因为它们是相对于显示对象原点的值。
然后,您可以将创建的 Point 实例作为参数传递给 localToGlobal()
方法。该方法会返回一个新的 Point 对象,该对象具有相对于舞台原点(而不是显示对象原点)的 x 和 y 值。
参数
point:Point — 使用 Point 类创建的点的名称或标识符,指定 x 和 y 坐标作为属性。
|
Point — 具有相对于舞台的坐标的 Point 对象。
|
move | () | 方法 |
setActualSize | () | 方法 |
public function setActualSize(newWidth:Number, newHeight:Number):void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 3 |
运行时版本: | Flash Player 9, AIR 1.1 |
设置此对象的实际大小。
此方法主要用于实现 updateDisplayList()
方法。在此期间,您可以根据其显式大小、相对于父项的(百分比)大小以及度量大小计算此对象的实际大小。然后,通过调用 setActualSize()
将此实际大小应用于对象。
在其他情况下,您应该设置 width
、height
、percentWidth
或 percentHeight
属性,而非调用此方法。
参数
newWidth:Number — 此对象的新宽度。
| |
newHeight:Number — 此对象的新高度。
|
Tue Jun 12 2018, 11:04 AM Z