包 | spark.core |
接口 | public interface IGraphicElement extends IVisualElement , ILayoutElement , ILayoutDirectionElement , IEventDispatcher |
实现器 | GraphicElement |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
IGraphicElementContainer
的 DisplayObject 管理的 IVisualElement 实现的。
一个典型用例是 DisplayObject 共享。实现 IGraphicElementContainer
的 Group 类在共享并绘制到相同 DisplayObject 的序列中组织其 IGraphicElement 子代。DisplayObject 是由序列中的第一个元素创建的。
另一个用例是当元素不是从 DisplayObject 派生而是维护、创建和/或破坏其自己的 DisplayObject 时。IGraphicElementContainer
将调用该元素以创建 DisplayObject,在正确的索引处将 DisplayObject 添加为其子代,以及处理其删除。
通常您会扩展 GraphicElement 类,而不是直接实现 IGraphciElement 接口。GraphicElement 类已提供大多数所需功能。
相关 API 元素
属性 | 由以下参数定义 | ||
---|---|---|---|
alpha : Number
表示指定对象的 Alpha 透明度值。 | IVisualElement | ||
baseline : Object
从锚点目标到控件的基线位置的垂直距离(以像素为单位)。 | ILayoutElement | ||
baselinePosition : Number [只读]
组件第一行文本的基线的 y 坐标。 | ILayoutElement | ||
bottom : Object
从组件的下边缘到锚点目标的下边缘的垂直距离(以像素为单位)。 | ILayoutElement | ||
depth : Number
确定容器内各项目的呈示顺序。 | IVisualElement | ||
designLayer : DesignLayer
指定与该可视元素关联的可选 DesignLayer 实例。 | IVisualElement | ||
displayObject : DisplayObject [只读]
绘制此 IGraphicElement 所在的共享 DisplayObject。 | IGraphicElement | ||
displayObjectSharingMode : String
指示此 IGraphicElement 与其显示对象之间的关联。 | IGraphicElement | ||
hasLayoutMatrix3D : Boolean [只读]
如果元素具有 3D 矩阵,则为 true。 | ILayoutElement | ||
height : Number
表示显示对象的高度,以像素为单位。 | IVisualElement | ||
horizontalCenter : Object
从组件中心到锚点目标的内容区域中心的水平距离(以像素为单位)。 | ILayoutElement | ||
includeInLayout : Boolean
指定此组件是否包含在父容器的布局中。 | ILayoutElement | ||
is3D : Boolean [只读]
当元素为 3D 时,则为 true。 | IVisualElement | ||
layoutDirection : String
指定元素的所需布局方向:LayoutDirection.LTR(从左到右)、LayoutDirection.RTL(从右到左)或 null(继承)。 | ILayoutDirectionElement | ||
left : Object
从组件的左边缘到锚点目标的左边缘的水平距离(以像素为单位)。 | ILayoutElement | ||
owner : DisplayObjectContainer
此 IVisualElement 对象的所有者。 | IVisualElement | ||
parent : DisplayObjectContainer [只读]
此组件的父容器或组件。 | IVisualElement | ||
percentHeight : Number
以组件父代大小百分比的方式指定组件高度。 | ILayoutElement | ||
percentWidth : Number
以组件父代大小百分比的方式指定组件宽度。 | ILayoutElement | ||
postLayoutTransformOffsets : mx.geom:TransformOffsets
定义能够应用于对象转换且在一定程度上对其父布局不可视的一组调整。 | IVisualElement | ||
right : Object
从组件的右边缘到锚点目标的右边缘的水平距离(以像素为单位)。 | ILayoutElement | ||
top : Object
从组件的上边缘到锚点目标的上边缘的垂直距离(以像素为单位)。 | ILayoutElement | ||
verticalCenter : Object
从组件中心到锚点目标的内容区域中心的垂直距离(以像素为单位)。 | ILayoutElement | ||
visible : Boolean
控制此可视元素的可见性。 | IVisualElement | ||
width : Number
表示显示对象的宽度,以像素为单位。 | IVisualElement | ||
x : Number
表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标。 | IVisualElement | ||
y : Number
表示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 y 坐标。 | IVisualElement |
方法 | 由以下参数定义 | ||
---|---|---|---|
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | IEventDispatcher | ||
如果此 IGraphicElement 是兼容的且可以与序列中下一个 IGraphicElement 共享显示对象,则返回 true。 | IGraphicElement | ||
如果此 IGraphicElement 是兼容的且可以与序列中上一个 IGraphicElement 共享显示对象,则返回 true。 | IGraphicElement | ||
创建一个新 DisplayObject 以用于绘制此 IGraphicElement。 | IGraphicElement | ||
将事件调度到事件流中。 | IEventDispatcher | ||
按指定的元素大小,返回元素边界的 x 坐标。 | ILayoutElement | ||
按指定的元素大小,返回元素边界的 y 坐标。 | ILayoutElement | ||
返回元素的布局高度。 | ILayoutElement | ||
返回元素的布局宽度。 | ILayoutElement | ||
返回元素在屏幕上进行绘制时所用的 x 坐标。 | ILayoutElement | ||
返回元素在屏幕上进行绘制时所用的 y 坐标。 | ILayoutElement | ||
返回用于相对于其同级组件计算组件的布局的转换矩阵。 | ILayoutElement | ||
返回此元素的布局转换 Matrix3D。 | ILayoutElement | ||
返回元素的最大高度。 | ILayoutElement | ||
返回元素的最大宽度。 | ILayoutElement | ||
返回元素的最小高度。 | ILayoutElement | ||
返回元素的最小宽度。 | ILayoutElement | ||
返回元素的首选高度。 | ILayoutElement | ||
返回元素的首选宽度。 | ILayoutElement | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | IEventDispatcher | ||
当某元素的 layoutDirection 更改或其父代的 layoutDirection 更改时,该元素必须调用该方法。 | ILayoutDirectionElement | ||
将 IGraphicElement 添加到主机组件或从主机组件将其删除时由 IGraphicElementContainer 调用。 | IGraphicElement | ||
从 EventDispatcher 对象中删除侦听器。 | IEventDispatcher | ||
设置元素在屏幕上进行绘制时所用的坐标。 | ILayoutElement | ||
设置元素的布局大小。 | ILayoutElement | ||
设置用于相对于其同级组件计算组件的布局大小和位置的转换 Matrix。 | ILayoutElement | ||
设置用于计算组件相对于其同级组件的布局大小和位置的转换 Matrix3D。 | ILayoutElement | ||
确定此元素是否可以将它自己绘制到该序列的 sharedDisplayObject。 | IGraphicElement | ||
transformAround(transformCenter:Vector3D, scale:Vector3D = null, rotation:Vector3D = null, translation:Vector3D = null, postLayoutScale:Vector3D = null, postLayoutRotation:Vector3D = null, postLayoutTranslation:Vector3D = null, invalidateLayout:Boolean = true):void
用于更新转换的旋转、缩放和平移的一种实用程序方法,同时保留某个特定点,该点是在组件自己的坐标空间中指定的,且在父项的坐标空间中是固定的。 | ILayoutElement | ||
由 IGraphicElementContainer 调用以在其 displayObject 属性中重新绘制此元素。 | IGraphicElement | ||
由 IGraphicElementContainer 所调用以验证此元素的属性。 | IGraphicElement | ||
由 IGraphicElementContainer 调用以验证此元素的大小。 | IGraphicElement | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | IEventDispatcher |
displayObject | 属性 |
displayObject:DisplayObject
[只读] 语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
绘制此 IGraphicElement 所在的共享 DisplayObject。
实现程序不得在此创建 DisplayObject,而应在 createDisplayObject()
方法中创建。
实现
public function get displayObject():DisplayObject
相关 API 元素
displayObjectSharingMode | 属性 |
displayObjectSharingMode:String
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4.5 |
运行时版本: | Flash Player 10, AIR 2.5 |
指示此 IGraphicElement 与其显示对象之间的关联。IGraphicElementContainer
管理此属性,且值是 DisplayObjectSharingMode 枚举类之一。
DisplayObjectSharingMode.OWNS_UNSHARED_OBJECT
的值指示 IGraphicElement 专门拥有与其displayObject
属性相对应的 DisplayObject。DisplayObjectSharingMode.OWNS_SHARED_OBJECT
的值指示 IGraphicElement 拥有与其displayObject
属性相对应的 DisplayObject,但其他 IGraphicElement 也正在使用/绘制到该显示对象。根据特定实现,IGraphicElement 可能会执行显示对象的某些管理。例如,基类 GraphicElement 会清除显示对象的转换,将其可见性、Alpha 等属性重置为其默认值,且还清除每个validateDisplayList()
调用上的图形。DisplayObjectSharingMode.USES_SHARED_OBJECT
的值指示 IGraphicElement 绘制到与其displayObject
属性相对应的 DisplayObject。存在一个或多个绘制到相同 displayObject 的 IGraphicElement,且绘制的第一个元素将其模式设置为DisplayObjectMode.OWNS_SHARED_OBJECT
实现
public function get displayObjectSharingMode():String
public function set displayObjectSharingMode(value:String):void
canShareWithNext | () | 方法 |
public function canShareWithNext(element:IGraphicElement):Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
如果此 IGraphicElement 是兼容的且可以与序列中下一个 IGraphicElement 共享显示对象,则返回 true
。
参数
element:IGraphicElement — 序列中在此元素之后的元素。
|
Boolean — 此元素与序列中的上一个元素兼容时返回 true 。
|
相关 API 元素
canShareWithPrevious | () | 方法 |
public function canShareWithPrevious(element:IGraphicElement):Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
如果此 IGraphicElement 是兼容的且可以与序列中上一个 IGraphicElement 共享显示对象,则返回 true
。
在某些情况下,调用 setSharedDisplayObject()
方法时会将该元素本身传递到 IGraphicElementContainer
。在这些情况下,不会调用此方法。
参数
element:IGraphicElement — 序列中在此元素之前的元素。
|
Boolean — 此元素与序列中的上一个元素兼容时返回 true 。
|
相关 API 元素
createDisplayObject | () | 方法 |
public function createDisplayObject():DisplayObject
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
创建一个新 DisplayObject 以用于绘制此 IGraphicElement。
随后对 displayObject
属性的 getter 的调用必须返回相同的显示对象。
在创建 DisplayObject 之后,父 IGraphicElementContainer
将沿着显示对象传递到序列中剩余的元素。
IGraphicElementContainer
确保只在需要时调用此方法。
如果该元素希望参与 DisplayObject 共享,则新的 DisplayObject 必须实现 IShareableDisplayObject。此接口供 IGraphicElementContainer
使用,用于管理图形元素序列的失效和重新绘制,开发人员通常不能直接使用该接口。
若要重新评估共享序列,请在 IGraphicElementContainer
上调用 invalidateGraphicElementSharing()
方法。
要强制 IGraphicElementContainer
从其显示列表删除元素的当前 DisplayObject,并重新计算显示对象共享,请调用 IGraphicElementContainer
上的 discardDisplayObject()
方法。
DisplayObject — 创建的显示对象。。
|
相关 API 元素
parentChanged | () | 方法 |
public function parentChanged(parent:IGraphicElementContainer):void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
将 IGraphicElement 添加到主机组件或从主机组件将其删除时由 IGraphicElementContainer
调用。
您通常无需调用此方法。
参数
parent:IGraphicElementContainer — 该 IGraphicElement 的 IGraphicElementContainer 。
|
setSharedDisplayObject | () | 方法 |
public function setSharedDisplayObject(sharedDisplayObject:DisplayObject):Boolean
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
确定此元素是否可以将它自己绘制到该序列的 sharedDisplayObject
。
当此 IGraphicElement 可以在共享的 DisplayObject graphics
属性中累积地绘制时,实现程序通常返回 true
。在此 IGraphicElement 需要在 DisplayObject 上设置属性(不会应用于序列中的剩余元素)的所有情形下,此方法必须返回 false
。此类属性的示例有 rotation、scale、transform、mask、alpha、filters、color transform、3D 和 layer。
当此方法返回 true
时,随后对 displayObject
属性的 getter 的调用必须返回相同的显示对象。
在某些情况下,sharedDisplayObject
属性可能本身就是 IGraphicElementContainer
。在其余情形下,DisplayObject 是由序列中的第一个元素创建的。
当此 IGraphicElement 需要重新生成其序列时,它会通过调用其 invalidateGraphicElementSharing()
方法通知 IGraphicElementContainer
。
参数
sharedDisplayObject:DisplayObject — 共享的 DisplayObject。
|
Boolean — 当此 IGraphicElement 可以将它自己绘制到该序列的共享 DisplayObject 时返回 true 。
|
相关 API 元素
validateDisplayList | () | 方法 |
public function validateDisplayList():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
由 IGraphicElementContainer
调用以在其 displayObject
属性中重新绘制此元素。
如果该元素是序列中的第一个元素(将 displayObjectSharingMode
设置为 DisplayObjectSharingMode.OWNS_SHARED_OBJECT
),则它必须清除 displayObject
图形并根据需要对其进行设置以绘制剩余元素。
必须始终重新绘制该元素,即使该元素本身在上次调用 validateDisplayList()
方法之后未发生更改时也是如此。如果需要重新绘制 IGraphicElementContainer
中的任何元素,则它将重新绘制整个序列。
要确保调用此方法,请通过调用其 invalidateGraphicElementSize()
方法通知 IGraphicElementContainer
。
即使此元素未通知 IGraphicElementContainer
,也可能会调用此方法。
相关 API 元素
validateProperties | () | 方法 |
public function validateProperties():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
由 IGraphicElementContainer
所调用以验证此元素的属性。
要确保调用此方法,请通过调用其 invalidateGraphicElementProperties()
方法通知 IGraphicElementContainer
。
即使此元素未通知 IGraphicElementContainer
,也可能会调用此方法。
相关 API 元素
validateSize | () | 方法 |
public function validateSize():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
由 IGraphicElementContainer
调用以验证此元素的大小。
当元素大小发生变化并将影响 IGraphicElementContainer
布局时,实现程序负责使父代的大小和显示列表失效。
要确保调用此方法,请通过调用其 invalidateGraphicElementSize()
方法通知 IGraphicElementContainer
。
即使此元素未通知 IGraphicElementContainer
,也可能会调用此方法。
相关 API 元素
Tue Jun 12 2018, 11:04 AM Z