mx.core
接口public interface IFlexDisplayObject extends IBitmapDrawable , IEventDispatcher
实现器 BitmapAsset, ButtonAsset, DefaultDragImage, MovieClipAsset, MovieClipLoaderAsset, ProgrammaticSkin, SpriteAsset, SystemManager, TextFieldAsset, UIComponent

IFlexDisplayObject 接口定义外观元素的接口。至少,外观必须是一个 DisplayObject 并实现此接口。



公共属性
 属性定义方
  accessibilityProperties : AccessibilityProperties
此显示对象的当前辅助功能选项。
IFlexDisplayObject
  alpha : Number
指示指定对象的 Alpha 透明度值。
IFlexDisplayObject
  blendMode : String
BlendMode 类中的一个值,用于指定要使用的混合模式。
IFlexDisplayObject
  cacheAsBitmap : Boolean
如果设置为 true,则 Flash Player 或 Adobe AIR 将缓存显示对象的内部位图表示形式。
IFlexDisplayObject
  filters : Array
包含当前与显示对象关联的每个滤镜对象的索引数组。
IFlexDisplayObject
  height : Number
指示显示对象的高度,以像素为单位。
IFlexDisplayObject
  loaderInfo : LoaderInfo
[只读 (read-only)] 返回一个 LoaderInfo 对象,其中包含加载此显示对象所属的文件的相关信息。
IFlexDisplayObject
  mask : DisplayObject
调用显示对象被指定的 mask 对象遮罩。
IFlexDisplayObject
  measuredHeight : Number
[只读 (read-only)] 此对象的测量高度。
IFlexDisplayObject
  measuredWidth : Number
[只读 (read-only)] 此对象的测量宽度。
IFlexDisplayObject
  mouseX : Number
[只读 (read-only)] 指示鼠标位置的 x 坐标,以像素为单位。
IFlexDisplayObject
  mouseY : Number
[只读 (read-only)] 指示鼠标位置的 y 坐标,以像素为单位。
IFlexDisplayObject
  name : String
指示 DisplayObject 的实例名称。
IFlexDisplayObject
  opaqueBackground : Object
指定显示对象是否由于具有某种背景颜色而不透明。
IFlexDisplayObject
  parent : DisplayObjectContainer
[只读 (read-only)] 指示包含此显示对象的 DisplayObjectContainer 对象。
IFlexDisplayObject
  root : DisplayObject
[只读 (read-only)] 此处介绍的几种方法通常只位于 IDisplayObject 中,但为了具有向后兼容性,在 IFlexDisplayObject 中还必须直接包含它们,因此这些方法存在于此独立的包含文件中。
IFlexDisplayObject
  rotation : Number
指示 DisplayObject 实例距其原始方向的旋转程度,以度为单位。
IFlexDisplayObject
  scale9Grid : Rectangle
当前有效的缩放网格。
IFlexDisplayObject
  scaleX : Number
指示从注册点开始应用的对象的水平缩放比例(百分比)。
IFlexDisplayObject
  scaleY : Number
指示从对象注册点开始应用的对象的垂直缩放比例(百分比)。
IFlexDisplayObject
  scrollRect : Rectangle
显示对象的滚动矩形范围。
IFlexDisplayObject
  stage : Stage
[只读 (read-only)] 显示对象的舞台。
IFlexDisplayObject
  transform : Transform
一个对象,具有与显示对象的矩阵、颜色转换和像素范围有关的属性。
IFlexDisplayObject
  visible : Boolean
显示对象是否可见。
IFlexDisplayObject
  width : Number
指示显示对象的宽度,以像素为单位。
IFlexDisplayObject
  x : Number
指示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标。
IFlexDisplayObject
  y : Number
指示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 y 坐标。
IFlexDisplayObject
公共方法
 方法定义方
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
IEventDispatcher
 Inherited
将事件调度到事件流中。
IEventDispatcher
  
getBounds(targetCoordinateSpace:DisplayObject):Rectangle
返回一个矩形,该矩形定义相对于 targetCoordinateSpace 对象坐标系的显示对象区域。
IFlexDisplayObject
  
getRect(targetCoordinateSpace:DisplayObject):Rectangle
返回一个矩形,该矩形根据 targetCoordinateSpace 参数定义的坐标系定义显示对象的边界,但不包括形状上的任何笔触。
IFlexDisplayObject
  
将 point 对象从舞台(全局)坐标转换为显示对象的(本地)坐标。
IFlexDisplayObject
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
IEventDispatcher
  
计算显示对象,以确定它是否与 obj 显示对象重叠或相交。
IFlexDisplayObject
  
hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
计算显示对象,以确定它是否与 x 和 y 参数指定的点重叠或相交。
IFlexDisplayObject
  
将 point 对象从显示对象的(本地)坐标转换为舞台(全局)坐标。
IFlexDisplayObject
  
将此对象移动到指定的 x 和 y 坐标。
IFlexDisplayObject
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
IEventDispatcher
  
setActualSize(newWidth:Number, newHeight:Number):void
设置此对象的实际大小。
IFlexDisplayObject
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
IEventDispatcher
属性详细信息
accessibilityProperties属性
accessibilityProperties:AccessibilityProperties  [读写]

此显示对象的当前辅助功能选项。如果您修改 accessibilityProperties 属性或 accessibilityProperties 内部的任何字段,则必须调用 Accessibility.updateProperties() 方法以使您的更改生效。



实现
    public function get accessibilityProperties():AccessibilityProperties
    public function set accessibilityProperties(value:AccessibilityProperties):void
alpha属性 
alpha:Number  [读写]

指示指定对象的 Alpha 透明度值。有效值为 0(完全透明)到 1(完全不透明)。默认值为 1。alpha 设置为 0 的显示对象活动的,即使它们不可见。



实现
    public function get alpha():Number
    public function set alpha(value:Number):void
blendMode属性 
blendMode:String  [读写]

BlendMode 类中的一个值,用于指定要使用的混合模式。内部绘制位图的方法有两种。如果启用了混合模式或外部剪辑遮罩,则将通过向矢量渲染器添加有位图填充的正方形来绘制位图。如果尝试将此属性设置为无效值,则 Flash Player 或 Adobe AIR 会将该值设置为 BlendMode.NORMAL

blendMode 属性影响显示对象的每个像素。每个像素都由三种原色(红色、绿色和蓝色)组成,每种原色的值介于 0x00 和 0xFF 之间。Flash Player 或 Adobe AIR 将影片剪辑中一个像素的每种原色与背景中像素的对应颜色进行比较。例如,如果 blendMode 设置为 BlendMode.LIGHTEN,则 Flash Player 或 Adobe AIR 会将显示对象的红色值与背景的红色值进行比较,然后使用两者中较亮的一种颜色作为显示颜色的红色成分的值。

下表将对 blendMode 设置进行说明。BlendMode 类定义可使用的字符串值。表中的插图显示应用于交叠于显示对象 (1) 之上的圆形显示对象 (2) 的 blendMode 值。

编号为 1 的正方形编号为 2 的圆

BlendMode 常量插图Description
BlendMode.NORMAL 混合模式 NORMAL 该显示对象出现在背景前面。显示对象的像素值将覆盖背景的像素值。在显示对象为透明的区域,背景是可见的。
BlendMode.LAYER 混合模式 LAYER 强制为该显示对象创建一个透明度组。这意味着首先在临时缓冲区中预构建显示对象,然后再进行下一步处理。如果显示对象是使用位图缓存进行预缓存的,或显示对象是至少带有一个子对象(具有 BlendMode.NORMAL 以外的 blendMode 设置)的显示对象容器,则这将自动完成。
BlendMode.MULTIPLY 混合模式 MULTIPLY 将显示对象原色的值与背景颜色的值相乘,然后通过除以 0xFF 进行标准化,从而得到较暗的颜色。此设置通常用于阴影和深度效果。

例如,如果显示对象中一个像素的某个原色(例如红色)与背景中对应的像素颜色的值均为 0x88,则相乘结果为 0x4840。除以 0xFF 将得到该原色的值 0x48,这是比显示对象或背景颜色暗的阴影。

BlendMode.SCREEN 混合模式 SCREEN 将显示对象颜色的补色(反色)与背景颜色的补色相乘,会产生漂白效果。此设置通常用于产生加亮效果或用来删除显示对象的黑色区域。
BlendMode.LIGHTEN 混合模式 LIGHTEN 在显示对象原色和背景颜色中选择相对较亮的颜色(具有较大值的颜色)。此设置通常用于叠加类型。

例如,如果显示对象的某个像素的 RGB 值为 0xFFCC33,背景像素的 RGB 值为 0xDDF800,则显示像素的结果 RGB 值为 0xFFF833(因为 0xFF > 0xDD,0xCC < 0xF8,且 0x33 > 0x00 = 33)。

BlendMode.DARKEN 混合模式 DARKEN 在显示对象原色和背景颜色中选择相对较暗的颜色(具有较小值的颜色)。此设置通常用于叠加类型。

例如,如果显示对象的某个像素的 RGB 值为 0xFFCC33,背景像素的 RGB 值为 0xDDF800,则显示像素的结果 RGB 值为 0xDDCC00(因为 0xFF > 0xDD,0xCC < 0xF8,且 0x33 > 0x00 = 33)。

BlendMode.DIFFERENCE 混合模式 DIFFERENCE 将显示对象的原色与背景颜色进行比较,然后从较亮的原色值中减去较暗的原色值。此设置通常用于得到更明亮的颜色。

例如,如果显示对象的某个像素的 RGB 值为 0xFFCC33,背景像素的 RGB 值为 0xDDF800,则显示像素的结果 RGB 值为 0x222C33(因为 0xFF - 0xDD = 0x22,0xF8 - 0xCC = 0x2C,且 0x33 - 0x00 = 0x33)。

BlendMode.ADD 混合模式 ADD 将显示对象的原色值添加到它的背景颜色中,上限值为 0xFF。此设置通常用于使两个对象间的加亮溶解产生动画效果。

例如,如果显示对象的某个像素的 RGB 值为 0xAAA633,背景像素的 RGB 值为 0xDD2200,则显示像素的结果 RGB 值为 0xFFC833(因为 0xAA + 0xDD > 0xFF,0xA6 + 0x22 = 0xC8,且 0x33 + 0x00 = 0x33)。

BlendMode.SUBTRACT 混合模式 SUBTRACT 从背景颜色的值中减去显示对象原色的值,下限值为 0。此设置通常用于使两个对象间的变暗溶解产生动画效果。

例如,如果显示对象的某个像素的 RGB 值为 0xAA2233,背景像素的 RGB 值为 0xDDA600,则显示像素的结果 RGB 值为 0x338400(因为 0xDD - 0xAA = 0x33,0xA6 - 0x22 = 0x84 且 0x00 - 0x33 < 0x00)。

BlendMode.INVERT 混合模式 INVERT 反转背景。
BlendMode.ALPHA 混合模式 ALPHA 将显示对象的每个像素的 Alpha 值应用于背景。这要求将父显示对象的 blendMode 设置设置为 BlendMode.LAYER。例如,在此插图中,父显示对象是一个白色背景,它具有 blendMode = BlendMode.LAYER
BlendMode.ERASE 混合模式 ERASE 根据显示对象的 Alpha 值擦除背景。这要求将父显示对象的 blendMode 设置为 BlendMode.LAYER。例如,在此插图中,父显示对象是一个白色背景,它具有 blendMode = BlendMode.LAYER
BlendMode.OVERLAY 混合模式 OVERLAY 根据背景的暗度调整每个像素的颜色。如果背景灰度值高于 50%,则显示对象和背景颜色进行叠加,从而产生较亮的颜色。如果背景灰度值低于 50%,则颜色相乘,从而产生较暗的颜色。此设置通常用于获得阴影效果。
BlendMode.HARDLIGHT 混合模式 HARDLIGHT 根据显示对象的暗度调整每个像素的颜色。如果显示对象灰度值高于 50%,则显示对象和背景颜色进行叠加,从而产生较亮的颜色。如果显示对象灰度值低于 50%,则颜色相乘,从而产生较暗的颜色。此设置通常用于获得阴影效果。
BlendMode.SHADER 不可用 使用自定义着色器例程调整颜色。将使用的着色器指定为赋予 blendShader 属性的 Shader 实例。如果将显示对象的 blendShader 属性设置为 Shader 实例,则会将显示对象的 blendMode 属性自动设置为 BlendMode.SHADER。如果在未首先设置 blendShader 属性的情况下将 blendMode 属性设置为 BlendMode.SHADER,则 blendMode 属性会设置为 BlendMode.NORMAL



实现
    public function get blendMode():String
    public function set blendMode(value:String):void
cacheAsBitmap属性 
cacheAsBitmap:Boolean  [读写]

如果设置为 true,则 Flash Player 或 Adobe AIR 将缓存显示对象的内部位图表示形式。此缓存可以提高包含复杂矢量内容的显示对象的性能。

具有已缓存位图的显示对象的所有矢量数据都将被绘制到位图而不是主显示。然后,将位图作为贴紧到最接近像素边界的未拉伸、未旋转的像素复制到主显示。像素按一对一与父对象进行映射。如果位图的边界发生更改,则将重新创建位图而不会拉伸它。

除非将 cacheAsBitmap 属性设置为 true,否则不会创建内部位图。

cacheAsBitmap 属性设置为 true 后,呈现并不更改,但是,显示对象将自动执行像素贴紧。动画速度可能会大大加快,具体取决于矢量内容的复杂性。

只要对显示对象(当其 filter 数组不为空时)应用滤镜,cacheAsBitmap 属性就自动设置为 true,而且如果对显示对象应用了滤镜,即使将该属性设置为 false,也会将该显示对象的 cacheAsBitmap 报告为 true。如果清除显示对象的所有滤镜,则 cacheAsBitmap 设置将更改为它上次的设置。

在下面的情况下,即使将 cacheAsBitmap 属性设置为 true,显示对象也不使用位图,而是从矢量数据呈现:

最好将 cacheAsBitmap 属性与主要具有静态内容且不频繁缩放和旋转的影片剪辑一起使用。对于这样的影片剪辑,在转换影片剪辑时(更改其 xy 位置时),cacheAsBitmap 可以提高性能。



实现
    public function get cacheAsBitmap():Boolean
    public function set cacheAsBitmap(value:Boolean):void
filters属性 
filters:Array  [读写]

包含当前与显示对象关联的每个滤镜对象的索引数组。 flash.filters 包中的多个类定义了可使用的特定滤镜。

在设计时可以在 Flash 创作工具中应用滤镜,而在运行时则可以使用 ActionScript 代码应用滤镜。若要通过使用 ActionScript 应用滤镜,您必须制作整个 filters 数组的临时副本,修改临时数组,然后将临时数组的值分配回 filters 数组。 无法直接将新滤镜对象添加到 filters 数组。

要通过使用 ActionScript 添加滤镜,请执行以下步骤(假定目标显示对象名为 myDisplayObject):

  1. 使用所选滤镜类的构造函数方法创建一个新的滤镜对象。
  2. myDisplayObject.filters 数组的值分配给临时数组,例如一个名为 myFilters 的数组。
  3. 将新的滤镜对象添加到临时数组 myFilters
  4. 将临时数组的值分配给 myDisplayObject.filters 数组。

如果 filters 数组未定义,则无需使用临时数组。相反,您可以直接赋值包含一个或多个已创建的滤镜对象的一个数组文本值。“示例”部分的第一个示例通过使用处理已定义和未定义的 filters 数组的代码来添加投影滤镜。

要修改现有的滤镜对象,必须使用修改 filters 数组的副本的技术:

  1. filters 数组的值分配给临时数组,例如一个名为 myFilters 的数组。
  2. 使用临时数组 myFilters 修改属性。例如,如果要设置数组中第一个滤镜的品质属性,可以使用以下代码:myFilters[0].quality = 1;
  3. 将临时数组的值分配给 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  [读写]

指示显示对象的高度,以像素为单位。高度是根据显示对象内容的范围来计算的。如果您设置了 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  [只读 (read-only)]

返回一个 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  [读写]

调用显示对象被指定的 mask 对象遮罩。要确保当舞台缩放时蒙版仍然有效,mask 显示对象必须处于显示列表的活动部分。但不绘制 mask 对象本身。将 mask 设置为 null 可删除蒙版。

要能够缩放遮罩对象,它必须在显示列表中。要能够拖动蒙版 Sprite 对象(通过调用其 startDrag() 方法),它必须在显示列表中。要为基于 sprite 正在调度的 mouseDown 事件调用 startDrag() 方法,请将 sprite 的 buttonMode 属性设置为 true

注意:单个 mask 对象不能用于遮罩多个执行调用的显示对象。在将 mask 分配给第二个显示对象时,会撤消其作为第一个对象的遮罩,该对象的 mask 属性将变为 null



实现
    public function get mask():DisplayObject
    public function set mask(value:DisplayObject):void
measuredHeight属性 
measuredHeight:Number  [只读 (read-only)]

此对象的测量高度。

通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用 measure() 方法,从而能够计算 measuredHeight



实现
    public function get measuredHeight():Number
measuredWidth属性 
measuredWidth:Number  [只读 (read-only)]

此对象的测量宽度。

通常为图形外观硬编码此属性,因为此数字只是图形中的像素数目。对于代码外观来说,如果希望以特定大小进行绘制,也可以对其进行硬编码。如果此大小可以随属性更改,您可能还希望是 ILayoutManagerClient,以便在适当时调用 measure() 方法,从而能够计算 measuredHeight



实现
    public function get measuredWidth():Number
mouseX属性 
mouseX:Number  [只读 (read-only)]

指示鼠标位置的 x 坐标,以像素为单位。

注意:对于已旋转的 DisplayObject,返回的 x 坐标将反映未旋转的对象。



实现
    public function get mouseX():Number
mouseY属性 
mouseY:Number  [只读 (read-only)]

指示鼠标位置的 y 坐标,以像素为单位。

注意:对于已旋转的 DisplayObject,返回的 y 坐标将反映未旋转的对象。



实现
    public function get mouseY():Number
name属性 
name:String  [读写]

指示 DisplayObject 的实例名称。通过调用父显示对象容器的 getChildByName() 方法,可以在父显示对象容器的子列表中标识该对象。



实现
    public function get name():String
    public function set name(value:String):void
opaqueBackground属性 
opaqueBackground:Object  [读写]

指定显示对象是否由于具有某种背景颜色而不透明。透明的位图包含 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  [只读 (read-only)]

指示包含此显示对象的 DisplayObjectContainer 对象。使用 parent 属性可以指定高于显示列表层次结构中当前显示对象的显示对象的相对路径。

可以使用 parent 在显示列表中上移多个级别,如下所示:

this.parent.parent.alpha = 20;



实现
    public function get parent():DisplayObjectContainer
root属性 
root:DisplayObject  [只读 (read-only)]

此处介绍的几种方法通常只位于 IDisplayObject 中,但为了具有向后兼容性,在 IFlexDisplayObject 中还必须直接包含它们,因此这些方法存在于此独立的包含文件中。



实现
    public function get root():DisplayObject
rotation属性 
rotation:Number  [读写]

指示 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  [读写]

当前有效的缩放网格。如果设置为 null,则在应用任何缩放转换时,将正常缩放整个显示对象。

当定义 scale9Grid 属性时,该显示对象被分割到以 scale9Grid 矩形为基础的具有九个区域的网格中,该矩形定义网格的中心区域。网格的其它八个区域如下:

可以认为中心区域(由矩形定义)之外的八个区域类似于在缩放时已应用特殊规则的图片帧。

在设置 scale9Grid 属性并缩放显示对象后,会正常缩放所有文本和渐变;但是,对于对象的其它类型,将应用以下规则:

如果旋转显示对象,则所有后续缩放都是正常的(并会忽略 scale9Grid 属性)。

例如,请考虑以下显示对象和作为该显示对象的 scale9Grid 属性应用的矩形:

显示对象图像

显示对象。

显示对象缩放 9 区域

红色矩形显示 scale9Grid

缩放或拉伸显示对象时,矩形内的对象正常缩放,但是矩形外的对象则按照 scale9Grid 规则进行缩放:

缩放到 75%: 缩放到 75% 的显示对象
缩放到 50%: 缩放到 50% 的显示对象
缩放到 25%: 缩放到 25% 的显示对象
水平拉伸 150%: 拉伸 150% 的显示

设置 scale9Grid 的常见用法是设置用作组件的显示对象,当缩放该组件时,其中的边缘区域保持相同的宽度。



实现
    public function get scale9Grid():Rectangle
    public function set scale9Grid(value:Rectangle):void
scaleX属性 
scaleX:Number  [读写]

指示从注册点开始应用的对象的水平缩放比例(百分比)。默认注册点为 (0,0)。 1.0 等于 100% 缩放。

缩放本地坐标系统将更改 xy 属性值,这些属性值是以整像素定义的。



实现
    public function get scaleX():Number
    public function set scaleX(value:Number):void
scaleY属性 
scaleY:Number  [读写]

指示从对象注册点开始应用的对象的垂直缩放比例(百分比)。默认注册点为 (0,0)。 1.0 是 100% 缩放。

缩放本地坐标系统将更改 xy 属性值,这些属性值是以整像素定义的。



实现
    public function get scaleY():Number
    public function set scaleY(value:Number):void
scrollRect属性 
scrollRect:Rectangle  [读写]

显示对象的滚动矩形范围。显示对象被裁切为矩形定义的大小,当您更改 scrollRect 对象的 xy 属性时,它会在矩形内滚动。

scrollRect Rectangle 对象的属性使用显示对象的坐标空间,并缩放到像整个显示对象一样。滚动显示对象上已裁切窗口的转角范围是显示对象的原点 (0,0) 和矩形的宽度和高度定义的点。它们不按原点居中,而是使用原点定义区域的左上角。滚动的显示对象始终以整像素为增量进行滚动。

您可以通过设置 scrollRect Rectangle 对象的 x 属性来左右滚动对象, 还可以通过设置 scrollRect 对象的 y 属性来上下滚动对象。如果显示对象旋转了 90 度,并且您左右滚动它,则实际上显示对象会上下滚动。



实现
    public function get scrollRect():Rectangle
    public function set scrollRect(value:Rectangle):void
stage属性 
stage:Stage  [只读 (read-only)]

显示对象的舞台。Flash 应用程序只有一个 Stage 对象。例如,您可以创建多个显示对象并加载到显示列表中,每个显示对象的 stage 属性是指相同的 Stage 对象(即使显示对象属于已加载的 SWF 文件)。

如果显示对象未添加到显示列表,则其 stage 属性会设置为 null



实现
    public function get stage():Stage
transform属性 
transform:Transform  [读写]

一个对象,具有与显示对象的矩阵、颜色转换和像素范围有关的属性。在 Transform 类的条目中对特定属性 matrix、colorTransform 和三个只读属性(concatenatedMatrixconcatenatedColorTransformpixelBounds)进行了说明。

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 具有相同的矩阵、颜色转换和像素范围值。



实现
    public function get transform():Transform
    public function set transform(value:Transform):void
visible属性 
visible:Boolean  [读写]

显示对象是否可见。不可见的显示对象已被禁用。例如,如果 InteractiveObject 实例的 visible=false,则无法单击该对象。



实现
    public function get visible():Boolean
    public function set visible(value:Boolean):void
width属性 
width:Number  [读写]

指示显示对象的宽度,以像素为单位。宽度是根据显示对象内容的范围来计算的。如果您设置了 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  [读写]

指示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标。如果该对象位于具有变形的 DisplayObjectContainer 内,则它也位于包含 DisplayObjectContainer 的本地坐标系中。因此,对于逆时针旋转 90 度的 DisplayObjectContainer,该 DisplayObjectContainer 的子级将继承逆时针旋转 90 度的坐标系。对象的坐标指的是注册点的位置。



实现
    public function get x():Number
    public function set x(value:Number):void
y属性 
y:Number  [读写]

指示 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

返回一个矩形,该矩形定义相对于 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

返回一个矩形,该矩形根据 targetCoordinateSpace 参数定义的坐标系定义显示对象的边界,但不包括形状上的任何笔触。getRect() 方法返回的值等于或小于由 getBounds() 方法返回的值。

请注意:使用 localToGlobal()globalToLocal() 方法可以分别将显示对象的本地坐标转换为舞台坐标,或将舞台坐标转换为本地坐标。

参数

targetCoordinateSpace:DisplayObject — 定义要使用的坐标系的显示对象。

返回
Rectangle — 定义与 targetCoordinateSpace 对象坐标系统相关的显示对象面积的矩形。
globalToLocal()方法 
public function globalToLocal(point:Point):Point

point 对象从舞台(全局)坐标转换为显示对象的(本地)坐标。

要使用此方法,请先创建 Point 类的一个实例。您分配的 xy 值表示全局坐标,因为它们是相对于主显示区域的原点 (0,0) 的。然后将 Point 实例作为参数传递给 globalToLocal() 方法。该方法会返回一个新的 Point 对象,该对象具有相对于显示对象原点(而不是舞台原点)的 xy 值。

参数

point:Point — 用 Point 类创建的对象。该 Point 对象指定 xy 坐标作为属性。

返回
Point — 具有相对于显示对象的坐标的 Point 对象。
hitTestObject()方法 
public function hitTestObject(obj:DisplayObject):Boolean

计算显示对象,以确定它是否与 obj 显示对象重叠或相交。

参数

obj:DisplayObject — 要测试的显示对象。

返回
Boolean — 如果显示对象相交,则为 true;否则为 false
hitTestPoint()方法 
public function hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean

计算显示对象,以确定它是否与 xy 参数指定的点重叠或相交。xy 参数指定舞台的坐标空间中的点,而不是包含显示对象的显示对象容器中的点(除非显示对象容器是舞台)。

参数

x:Number — 要测试的此对象的 x 坐标。
 
y:Number — 要测试的此对象的 y 坐标。
 
shapeFlag:Boolean (default = false) — 是检查对象 (true) 的实际像素,还是检查边框 (false) 的实际像素。

返回
Boolean — 如果显示对象与指定的点重叠或相交,则为 true;否则为 false
localToGlobal()方法 
public function localToGlobal(point:Point):Point

point 对象从显示对象的(本地)坐标转换为舞台(全局)坐标。

此方法允许您将任何给定的 xy 坐标从相对于特定显示对象原点 (0,0) 的值(本地坐标)转换为相对于舞台原点的值(全局坐标)。

要使用此方法,请先创建 Point 类的一个实例。您分配的 xy 的值表示本地坐标,因为它们是相对于显示对象原点的值。

然后,您可以将创建的 Point 实例作为参数传递给 localToGlobal() 方法。该方法会返回一个新的 Point 对象,该对象具有相对于舞台原点(而不是显示对象原点)的 xy 值。

参数

point:Point — 使用 Point 类创建的点的名称或标识符,指定 xy 坐标作为属性。

返回
Point — 具有相对于舞台的坐标的 Point 对象。
move()方法 
public function move(x:Number, y:Number):void

将此对象移动到指定的 x 和 y 坐标。

参数

x:Number — 此对象的新 x 位置。
 
y:Number — 此对象的新 y 位置。

setActualSize()方法 
public function setActualSize(newWidth:Number, newHeight:Number):void

设置此对象的实际大小。

此方法主要用于实现 updateDisplayList() 方法。在此期间,您可以根据其显式大小、相对于父项的(百分比)大小以及度量大小计算此对象的实际大小。然后,通过调用 setActualSize() 将此实际大小应用于对象。

在其它情况下,您应该设置 widthheightpercentWidthpercentHeight 属性,而非调用此方法。

参数

newWidth:Number — 此对象的新宽度。
 
newHeight:Number — 此对象的新高度。