mx.skins
public class ProgrammaticSkin
继承ProgrammaticSkin Inheritance FlexShape Inheritance Shape Inheritance DisplayObject Inheritance EventDispatcher Inheritance Object
实现 IFlexDisplayObject, IInvalidating, ILayoutManagerClient, ISimpleStyleClient, IProgrammaticSkin
子类 AdvancedDataGridHeaderHorizontalSeparator, ApplicationBackground, ApplicationTitleBarBackgroundSkin, AreaRenderer, Border, BoxItemRenderer, BrokenImageBorderSkin, CandlestickItemRenderer, CircleItemRenderer, CrossItemRenderer, DataGridColumnDropIndicator, DataGridColumnResizeSkin, DataGridHeaderBackgroundSkin, DataGridHeaderSeparator, DataGridSortArrow, DateChooserIndicator, DiamondItemRenderer, HaloFocusRect, HLOCItemRenderer, LineRenderer, LinkSeparator, ListDropIndicator, PopUpIcon, ProgressMaskSkin, ShadowBoxItemRenderer, ShadowLineRenderer, StatusBarBackgroundSkin, TitleBackground, TriangleItemRenderer, WedgeItemRenderer, WindowBackground

该类是外观元素的基类,它们通过编程方式来绘制自身。

另请参见

Creating programmatic skins
Creating programmatic skins


公共属性
 属性定义方
 InheritedaccessibilityProperties : AccessibilityProperties
此显示对象的当前辅助功能选项。
DisplayObject
 Inheritedalpha : Number
指示指定对象的 Alpha 透明度值。
DisplayObject
 InheritedblendMode : String
BlendMode 类中的一个值,用于指定要使用的混合模式。
DisplayObject
 InheritedblendShader : Shader
[只写] 设置用于混合前景和背景的着色器。
DisplayObject
 InheritedcacheAsBitmap : Boolean
如果设置为 true,则 Flash Player 或 Adobe AIR 将缓存显示对象的内部位图表示形式。
DisplayObject
 Inheritedconstructor : Object
对类对象或给定对象实例的构造函数的引用。
Object
 Inheritedfilters : Array
包含当前与显示对象关联的每个滤镜对象的索引数组。
DisplayObject
 Inheritedgraphics : Graphics
[只读 (read-only)] 指定属于该 Shape 对象的 Graphics 对象,可通过此对象执行矢量绘画命令。
Shape
 Inheritedheight : Number
指示显示对象的高度,以像素为单位。
DisplayObject
  initialized : Boolean
一个标志,用于确定某个对象是否已通过布局的所有三个阶段:提交、测量和布局(假设每个阶段都是必需的)。
ProgrammaticSkin
 InheritedloaderInfo : LoaderInfo
[只读 (read-only)] 返回一个 LoaderInfo 对象,其中包含加载此显示对象所属的文件的相关信息。
DisplayObject
 Inheritedmask : DisplayObject
调用显示对象被指定的 mask 对象遮罩。
DisplayObject
  measuredHeight : Number
[只读 (read-only)] 此对象的测量高度。
ProgrammaticSkin
  measuredWidth : Number
[只读 (read-only)] 此对象的测量宽度。
ProgrammaticSkin
 InheritedmouseX : Number
[只读 (read-only)] 指示鼠标位置的 x 坐标,以像素为单位。
DisplayObject
 InheritedmouseY : Number
[只读 (read-only)] 指示鼠标位置的 y 坐标,以像素为单位。
DisplayObject
 Inheritedname : String
指示 DisplayObject 的实例名称。
DisplayObject
  nestLevel : int
此对象在所属关系层次结构中的深度。
ProgrammaticSkin
 InheritedopaqueBackground : Object
指定显示对象是否由于具有某种背景颜色而不透明。
DisplayObject
 Inheritedparent : DisplayObjectContainer
[只读 (read-only)] 指示包含此显示对象的 DisplayObjectContainer 对象。
DisplayObject
  processedDescriptors : Boolean
临时或延迟子项创建操作后设置为 true,具体取决于发生对象。
ProgrammaticSkin
 Inheritedprototype : Object
[静态] 对类或函数对象的原型对象的引用。
Object
 Inheritedroot : DisplayObject
[只读 (read-only)] 对于加载的 SWF 文件中的显示对象,root 属性是此 SWF 文件所表示的显示列表树结构部分中的顶级显示对象。
DisplayObject
 Inheritedrotation : Number
指示 DisplayObject 实例距其原始方向的旋转程度,以度为单位。
DisplayObject
 InheritedrotationX : Number
指示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 x 轴旋转(以度为单位)。
DisplayObject
 InheritedrotationY : Number
指示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 y 轴旋转(以度为单位)。
DisplayObject
 InheritedrotationZ : Number
指示 DisplayObject 实例相对于 3D 父容器距离其原始方向的 z 轴旋转(以度为单位)。
DisplayObject
 Inheritedscale9Grid : Rectangle
当前有效的缩放网格。
DisplayObject
 InheritedscaleX : Number
指示从注册点开始应用的对象的水平缩放比例(百分比)。
DisplayObject
 InheritedscaleY : Number
指示从对象注册点开始应用的对象的垂直缩放比例(百分比)。
DisplayObject
 InheritedscaleZ : Number
指示从对象的注册点开始应用的对象的深度缩放比例(百分比)。
DisplayObject
 InheritedscrollRect : Rectangle
显示对象的滚动矩形范围。
DisplayObject
 Inheritedstage : Stage
[只读 (read-only)] 显示对象的舞台。
DisplayObject
  styleName : Object
用于获取样式值的父组件。
ProgrammaticSkin
 Inheritedtransform : Transform
一个对象,具有与显示对象的矩阵、颜色转换和像素范围有关的属性。
DisplayObject
  updateCompletePendingFlag : Boolean
一个标志,确定某个对象是否已通过所有三个阶段的布局验证(假设需要通过所有验证)。
ProgrammaticSkin
 Inheritedvisible : Boolean
显示对象是否可见。
DisplayObject
 Inheritedwidth : Number
指示显示对象的宽度,以像素为单位。
DisplayObject
 Inheritedx : Number
指示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 x 坐标。
DisplayObject
 Inheritedy : Number
指示 DisplayObject 实例相对于父级 DisplayObjectContainer 本地坐标的 y 坐标。
DisplayObject
 Inheritedz : Number
指示 DisplayObject 实例相对于 3D 父容器沿 z 轴的 z 坐标位置。
DisplayObject
公共方法
 方法定义方
  
构造函数。
ProgrammaticSkin
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。
EventDispatcher
 Inherited
将事件调度到事件流中。
EventDispatcher
 Inherited
getBounds(targetCoordinateSpace:DisplayObject):Rectangle
返回一个矩形,该矩形定义相对于 targetCoordinateSpace 对象坐标系的显示对象区域。
DisplayObject
 Inherited
getRect(targetCoordinateSpace:DisplayObject):Rectangle
返回一个矩形,该矩形根据 targetCoordinateSpace 参数定义的坐标系定义显示对象的边界,但不包括形状上的任何笔触。
DisplayObject
  
getStyle(styleProp:String):*
返回指定样式属性的值。
ProgrammaticSkin
 Inherited
将 point 对象从舞台(全局)坐标转换为显示对象的(本地)坐标。
DisplayObject
 Inherited
将二维点从舞台(全局)坐标转换为三维显示对象的(本地)坐标。
DisplayObject
 Inherited
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
EventDispatcher
 Inherited
指示对象是否已经定义了指定的属性。
Object
 Inherited
计算显示对象,以确定它是否与 obj 显示对象重叠或相交。
DisplayObject
 Inherited
hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
计算显示对象,以确定它是否与 x 和 y 参数指定的点重叠或相交。
DisplayObject
  
标记组件,以便在稍后屏幕更新期间调用该组件的 updateDisplayList() 方法。
ProgrammaticSkin
  
调用此方法将导致在呈现显示列表前调用组件的 validateProperties() 方法。
ProgrammaticSkin
  
调用此方法将导致在呈现显示列表前调用组件的 validateSize() 方法。
ProgrammaticSkin
 Inherited
指示 Object 类的实例是否在指定为参数的对象的原型链中。
Object
 Inherited
将三维显示对象的(本地)坐标的三维点转换为舞台(全局)坐标中的二维点。
DisplayObject
 Inherited
将 point 对象从显示对象的(本地)坐标转换为舞台(全局)坐标。
DisplayObject
  
将此对象移动到指定的 x 和 y 坐标。
ProgrammaticSkin
 Inherited
指示指定的属性是否存在、是否可枚举。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
从 EventDispatcher 对象中删除侦听器。
EventDispatcher
  
setActualSize(newWidth:Number, newHeight:Number):void
设置该对象的高度和宽度。
ProgrammaticSkin
 Inherited
设置循环操作动态属性的可用性。
Object
  
每当样式更改时,重绘此外观。
ProgrammaticSkin
 Inherited
返回一个字符串,用于指示此对象在应用程序的 DisplayObject 层次结构中所处的位置。
FlexShape
  
当此控件绘制自身时,LayoutManager 调用此函数。
ProgrammaticSkin
  
验证并更新此对象的属性和布局,如果需要的话重绘对象。
ProgrammaticSkin
  
此函数是一个空存根,以便 ProgrammaticSkin 可以实现 ILayoutManagerClient 接口。
ProgrammaticSkin
  
validateSize(recursive:Boolean = false):void
此函数是一个空存根,以便 ProgrammaticSkin 可以实现 ILayoutManagerClient 接口。
ProgrammaticSkin
 Inherited
返回指定对象的原始值。
Object
 Inherited
检查是否用此 EventDispatcher 对象或其任何始祖为指定事件类型注册了事件侦听器。
EventDispatcher
受保护的方法
 方法定义方
  
drawRoundRect(x:Number, y:Number, width:Number, height:Number, cornerRadius:Object = null, color:Object = null, alpha:Object = null, gradientMatrix:Matrix = null, gradientType:String = "linear", gradientRatios:Array = null, hole:Object = null):void
通过编程方式在此外观的 Graphics 对象中绘制一个矩形。
ProgrammaticSkin
  
创建水平渐变矩阵的实用程序函数。
ProgrammaticSkin
  
创建旋转渐变矩阵的实用程序函数。
ProgrammaticSkin
  
updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
通过编程方式绘制此外观的图形。
ProgrammaticSkin
  
创建垂直渐变矩阵的实用程序函数。
ProgrammaticSkin
事件
 事件 摘要 定义方
 Inherited[广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。EventDispatcher
 Inherited将显示对象添加到显示列表中时调度。DisplayObject
 Inherited在将显示对象直接添加到舞台显示列表或将包含显示对象的子树添加至舞台显示列表中时调度。DisplayObject
 Inherited[广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。EventDispatcher
 Inherited[播放事件] 播放头进入新帧时调度。DisplayObject
 Inherited[广播事件] 播放头退出当前帧时调度。DisplayObject
 Inherited[广播事件] 在帧显示对象的构造函数运行之后但在帧脚本运行之前调度。DisplayObject
 Inherited将要从显示列表中删除显示对象时调度。DisplayObject
 Inherited在从显示列表中直接删除显示对象或删除包含显示对象的子树时调度。DisplayObject
 Inherited[广播事件] 将要更新和呈现显示列表时调度。DisplayObject
属性详细信息
initialized属性
initialized:Boolean  [读写]

一个标志,用于确定某个对象是否已通过布局的所有三个阶段:提交、测量和布局(假设每个阶段都是必需的)。



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

此对象的测量高度。它应被子类覆盖,以返回外观的首选高度。



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

此对象的测量宽度。它应被子类覆盖,以返回外观的首选宽度。



实现
    public function get measuredWidth():Number
nestLevel属性 
nestLevel:int  [读写]

此对象在所属关系层次结构中的深度。测量和布局代码都使用此编号。如果 DisplayList 中没有此组件,则值为 0。



实现
    public function get nestLevel():int
    public function set nestLevel(value:int):void
processedDescriptors属性 
processedDescriptors:Boolean  [读写]

临时或延迟子项创建操作后设置为 true,具体取决于发生对象。对于 Container 对象,在 createComponentsFromDescriptors() 方法结束(即 Container 对象使用其子项描述符创建子项)后,该属性设置为 true

例如,如果 Accordion 容器使用延迟的实例化,则在用户导航到 Accordion 容器的第二个窗格并且该窗格创建其子项后,此窗格的 processedDescriptors 属性才变为 true。但是,如果 Accordion 已将 creationPolicy 属性设置为 "all",则在应用程序启动期间此容器第二个窗格的 processedDescriptors 属性设置为 true

非容器类都没有描述符,所以对于这些类,createChildren() 方法创建任何内部组件子项后,该属性设置为 true



实现
    public function get processedDescriptors():Boolean
    public function set processedDescriptors(value:Boolean):void
styleName属性 
styleName:Object  [读写]

用于获取样式值的父组件。通常将其设置为创建此外观的组件。



实现
    public function get styleName():Object
    public function set styleName(value:Object):void
updateCompletePendingFlag属性 
updateCompletePendingFlag:Boolean  [读写]

一个标志,确定某个对象是否已通过所有三个阶段的布局验证(假设需要通过所有验证)。



实现
    public function get updateCompletePendingFlag():Boolean
    public function set updateCompletePendingFlag(value:Boolean):void
构造函数详细信息
ProgrammaticSkin()构造函数
public function ProgrammaticSkin()

构造函数。

方法详细信息
drawRoundRect()方法
protected function drawRoundRect(x:Number, y:Number, width:Number, height:Number, cornerRadius:Object = null, color:Object = null, alpha:Object = null, gradientMatrix:Matrix = null, gradientType:String = "linear", gradientRatios:Array = null, hole:Object = null):void

通过编程方式在此外观的 Graphics 对象中绘制一个矩形。

矩形可以有圆角。其边缘使用 Graphics 对象的当前线条样式。可以使用纯色填充、渐变填充或无填充。纯色填充可以使用 Alpha 透明度。渐变填充可以为线性渐变或放射状渐变。可在沿着渐变的指定点上至多指定 15 个颜色和 Alpha 值,可为渐变指定旋转角度和转换矩阵。最后,该矩形可具有从其上切去的圆角矩形洞。

该通用矩形绘制例程被很多外观所使用。该例程调用 drawRect()drawRoundRect() 方法(在 flash.display.Graphics 类中)在此外观的 Graphics 对象中进行绘制。

参数

x:Number — 此外观中矩形左上角的水平位置。
 
y:Number — 此外观中矩形左上角的垂直位置。
 
width:Number — 矩形的宽度(以像素为单位)。
 
height:Number — 矩形的高度(以像素为单位)。
 
cornerRadius:Object (default = null) — 矩形的角半径。可以是 null、Number 或 Object。如果为 null,则表示该角应为方形而不是弧形。如果为 Number,则为所有四个角指定相同半径(以像素为单位)。如果为 Object,则应具有 tltrblbr 属性,这些属性值是用于指定左上角、右上角、左下角、右下角的半径的 Number(以像素为单位)。例如,您可以传递简单 Object,如 { tl: 5, tr: 5, bl: 0, br: 0 }。默认值为 null(方形角)。
 
color:Object (default = null) — 填充的 RGB 颜色。可以是 null、uint 或 Array。如果为 null,则不为矩形填充颜色。如果为 uint,则会指定一个 RGB 填充色。例如,传递 0xFF0000 可填充红色。如果为 Array,则应包含用于指定渐变颜色的 uint。例如,传递 [ 0xFF0000, 0xFFFF00, 0x0000FF ] 可填充红-黄-蓝渐变。在渐变中最多可以指定 15 种颜色。默认值为 null(无填充颜色)。
 
alpha:Object (default = null) — 用于填充的 Alpha 值。可以是 null、Number 或 Array。如果 color 为空,则忽略此参数。如果 color 是用于指定 RGB 填充颜色的 uint,则 alpha 应该是用于指定填充透明度的 Number,其中 0.0 表示完全透明,1.0 表示完全不透明。在本例中,您还可以通过传递空值而不是 1.0 来指定完全不透明。如果 color 是用于指定渐变颜色的 Array,则 alpha 应该是长度相同的数字 Array,用于为渐变指定相应的 alpha 值。在本例中,默认值为 null(完全不透明)。
 
gradientMatrix:Matrix (default = null) — 用于渐变填充的 Matrix 对象。可使用实用程序方法 horizontalGradientMatrix()verticalGradientMatrix()rotatedGradientMatrix() 来创建此参数的值。
 
gradientType:String (default = "linear") — 渐变填充的类型。可能的值为 GradientType.LINEARGradientType.RADIAL。(GradientType 类位于 flash.display 包中。)
 
gradientRatios:Array (default = null) — (可选默认值为 [0,255])指定颜色分布。条目数必须与在 color 参数中定义的颜色数匹配。各值均定义 100% 采样的颜色所在位置的宽度百分比。值 0 表示渐变框中的左侧位置,255 表示渐变框中的右侧位置。
 
hole:Object (default = null) — (可选)应从另一个实心填充的圆角矩形 { x: #, y: #, w: #, h: #, r: # 或 { br: #, bl: #, tl: #, tr: # } } 中央凸出的圆角矩形孔

另请参见

getStyle()方法 
public function getStyle(styleProp:String):*

返回指定样式属性的值。

参数

styleProp:String — 样式属性的名称。

返回
* — 样式值。可以是样式属性可以使用的任何对象类型,如 int、Number、String 等。
horizontalGradientMatrix()方法 
protected function horizontalGradientMatrix(x:Number, y:Number, width:Number, height:Number):Matrix

创建水平渐变矩阵的实用程序函数。

参数

x:Number — 渐变的左边缘。
 
y:Number — 渐变的上边缘。
 
width:Number — 渐变的宽度。
 
height:Number — 渐变的高度。

返回
Matrix — 水平渐变矩阵。它是一个临时对象,只能用于对 drawRoundRect() 方法的单个后续调用。
invalidateDisplayList()方法 
public function invalidateDisplayList():void

标记组件,以便在稍后屏幕更新期间调用该组件的 updateDisplayList() 方法。

Invalidation 是一个很有用的机制,可将组件更改延迟到稍后屏幕更新时进行处理,从而消除了重复的工作。例如,要更改宽度和高度,如果在更改宽度后立即更新组件,然后在设置新高度后再次更新组件,就有些浪费。更改两个属性后再使用新的大小一次性呈现组件,效率会更高。

很少调用 Invalidation 方法。通常,在组件上设置属性会自动调用合适的 invalidation 方法。

invalidateProperties()方法 
public function invalidateProperties():void

调用此方法将导致在呈现显示列表前调用组件的 validateProperties() 方法。

对于扩展 UIComponent 的组件,这暗示调用 commitProperties()

invalidateSize()方法 
public function invalidateSize():void

调用此方法将导致在呈现显示列表前调用组件的 validateSize() 方法。

对于扩展 UIComponent 的组件,这暗示调用 measure(),除非组件设置了 explicitWidthexplicitHeight

move()方法 
public function move(x:Number, y:Number):void

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

参数

x:Number — 水平位置(以像素为单位)。
 
y:Number — 垂直位置(以像素为单位)。

rotatedGradientMatrix()方法 
protected function rotatedGradientMatrix(x:Number, y:Number, width:Number, height:Number, rotation:Number):Matrix

创建旋转渐变矩阵的实用程序函数。

参数

x:Number — 渐变的左边缘。
 
y:Number — 渐变的上边缘。
 
width:Number — 渐变的宽度。
 
height:Number — 渐变的高度。
 
rotation:Number — 旋转量(以度为单位)。

返回
Matrix — 水平渐变矩阵。它是一个临时对象,只能用于对 drawRoundRect() 方法的单个后续调用。
setActualSize()方法 
public function setActualSize(newWidth:Number, newHeight:Number):void

设置该对象的高度和宽度。

参数

newWidth:Number — 该对象的宽度(以像素为单位)。
 
newHeight:Number — 该对象的高度(以像素为单位)。

styleChanged()方法 
public function styleChanged(styleProp:String):void

每当样式更改时,重绘此外观。子类可以覆盖此方法并在调用 invalidateDisplayList() 之前执行更加具体的测试。

参数

styleProp:String — 更改的样式属性的名称;如果所有样式均已更改,则为 null。

updateDisplayList()方法 
protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void

通过编程方式绘制此外观的图形。

子类应覆盖此方法并包扩对如 graphics.moveTo()graphics.lineTo() 的方法的调用。

此过程发生在对源的任何缩放(如用户代码或缩放效果)之前。组件并不知道之后发生的缩放。

参数

unscaledWidth:Number — 该对象在进行任何缩放之前的宽度(以像素为单位)。
 
unscaledHeight:Number — 该对象在进行任何缩放之前的高度(以像素为单位)。

另请参见

validateDisplayList()方法 
public function validateDisplayList():void

当此控件绘制自身时,LayoutManager 调用此函数。实际绘制发生在 updateDisplayList 函数中,它由此函数调用。

validateNow()方法 
public function validateNow():void

验证并更新此对象的属性和布局,如果需要的话重绘对象。

validateProperties()方法 
public function validateProperties():void

此函数是一个空存根,以便 ProgrammaticSkin 可以实现 ILayoutManagerClient 接口。外观不调用 LayoutManager.invalidateProperties(),它通常会触发对此方法的调用。

validateSize()方法 
public function validateSize(recursive:Boolean = false):void

此函数是一个空存根,以便 ProgrammaticSkin 可以实现 ILayoutManagerClient 接口。外观不调用 LayoutManager.invalidateSize(),它通常会触发对此方法的调用。

参数

recursive:Boolean (default = false) — 确定是否验证该外观的子项。

verticalGradientMatrix()方法 
protected function verticalGradientMatrix(x:Number, y:Number, width:Number, height:Number):Matrix

创建垂直渐变矩阵的实用程序函数。

参数

x:Number — 渐变的左边缘。
 
y:Number — 渐变的上边缘。
 
width:Number — 渐变的宽度。
 
height:Number — 渐变的高度。

返回
Matrix — 水平渐变矩阵。它是一个临时对象,只能用于对 drawRoundRect() 方法的单个后续调用。