包 | spark.primitives |
类 | public class Path |
继承 | Path FilledElement StrokedElement GraphicElement EventDispatcher Object |
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
通常,路径定义的第一个元素是 Move 段,用于指定图形的开始钢笔位置。接着将使用 Line、CubicBezier 和 QuadraticBezier 段来绘制图形的线条。使用这些类时,您仅需指定线的终点的 x 和 y 坐标;而起点的 x 和 y 坐标是由当前钢笔位置定义的。
在绘制线段之后,当前钢笔位置变成线的终点的 x 和 y 坐标。可以在路径定义中使用多个 Move 段来调整笔的位置。
Path 类定义形状所用的语法与 SVG 路径语法相同,这样很容易将 SVG 路径转换为 Flex 路径。
方法 | 由以下参数定义 | ||
---|---|---|---|
Path()
构造函数。 | Path | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | ||
如果此 IGraphicElement 是兼容的且可以与序列中下一个 IGraphicElement 共享显示对象,则返回 true。 | GraphicElement | ||
如果此 IGraphicElement 是兼容的且可以与序列中上一个 IGraphicElement 共享显示对象,则返回 true。 | GraphicElement | ||
创建一个新 DisplayObject 以用于绘制此 IGraphicElement。 | GraphicElement | ||
将事件调度到事件流中。 | EventDispatcher | ||
[覆盖]
按指定的元素大小,返回元素边界的 x 坐标。 | Path | ||
[覆盖]
按指定的元素大小,返回元素边界的 y 坐标。 | Path | ||
返回元素的布局高度。 | GraphicElement | ||
返回元素的布局宽度。 | GraphicElement | ||
返回元素在屏幕上进行绘制时所用的 x 坐标。 | GraphicElement | ||
返回元素在屏幕上进行绘制时所用的 y 坐标。 | GraphicElement | ||
返回用于相对于其同级组件计算组件的布局的转换矩阵。 | GraphicElement | ||
返回此元素的布局转换 Matrix3D。 | GraphicElement | ||
返回元素的最大高度。 | GraphicElement | ||
返回元素的最大宽度。 | GraphicElement | ||
返回元素的最小高度。 | GraphicElement | ||
返回元素的最小宽度。 | GraphicElement | ||
返回元素的首选高度。 | GraphicElement | ||
返回元素的首选宽度。 | GraphicElement | ||
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | ||
表示对象是否已经定义了指定的属性。 | Object | ||
如果 GraphicElement 是使用 MXML 标签创建的,则由 MXML 编译器自动调用。 | GraphicElement | ||
调用此方法将导致在呈示显示列表前调用元素的 validateDisplayList() 方法。 | GraphicElement | ||
当某元素的 layoutDirection 更改或其父代的 layoutDirection 更改时,该元素必须调用该方法。 | GraphicElement | ||
调用此方法将导致在呈示显示列表前调用元素的 validateProperties() 方法。 | GraphicElement | ||
调用此方法将导致在呈示显示列表前调用元素的 validateSize() 方法。 | GraphicElement | ||
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | ||
将 Point 对象从对象的(局部)坐标转换为舞台(全局)坐标。 | GraphicElement | ||
将 IGraphicElement 添加到主机组件或从主机组件将其删除时由 IGraphicElementContainer 调用。 | GraphicElement | ||
表示指定的属性是否存在、是否可枚举。 | Object | ||
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | ||
setLayoutBoundsPosition(newBoundsX:Number, newBoundsY:Number, postLayoutTransform:Boolean = true):void
设置元素在屏幕上进行绘制时所用的坐标。 | GraphicElement | ||
设置元素的布局大小。 | GraphicElement | ||
设置用于相对于其同级组件计算组件的布局大小和位置的转换 Matrix。 | GraphicElement | ||
设置用于计算组件相对于其同级组件的布局大小和位置的转换 Matrix3D。 | GraphicElement | ||
设置循环操作动态属性的可用性。 | Object | ||
确定此元素是否可以将它自己绘制到该序列的 sharedDisplayObject。 | GraphicElement | ||
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | ||
返回指定对象的字符串表示形式。 | Object | ||
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
用于更新转换的旋转、缩放和平移的一种实用程序方法,同时保留某个特定点,该点是在组件自己的坐标空间中指定的,且在父项的坐标空间中是固定的。 | GraphicElement | ||
一种实用程序方法,用于将以该对象的本地坐标指定的点转换为在该对象父坐标中的相应位置。 | GraphicElement | ||
由 IGraphicElementContainer 调用以在其 displayObject 属性中重新绘制此元素。 | GraphicElement | ||
根据需要,通过立即调用 validateProperties()、validateSize() 和 validateDisplayList() 来验证并更新此对象的属性和布局。 | GraphicElement | ||
由布局逻辑用于通过调用 commitProperties() 方法来验证组件的属性。 | GraphicElement | ||
由 IGraphicElementContainer 调用以验证此元素的大小。 | GraphicElement | ||
返回指定对象的原始值。 | Object | ||
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher |
方法 | 由以下参数定义 | ||
---|---|---|---|
[覆盖]
为此元素设置绘制。 | FilledElement | ||
确定是否可以跳过对 measure() 方法的调用。 | GraphicElement | ||
处理在元素上设置的属性。 | GraphicElement | ||
[覆盖]
绘制元素。 | Path | ||
[覆盖]
完成此元素的绘制。 | Path | ||
返回元素界限每一侧上的笔触所占据的像素数。 | GraphicElement | ||
[覆盖]
通知主机此元素已更改且需要更新其图层的实用程序方法。 | Path | ||
此对象影响其布局时(includeInLayout 为 true),使父代大小和显示列表失效的 Helper 方法。 | GraphicElement | ||
[覆盖]
计算元素的默认大小。 | Path | ||
用于 ILayoutElement 接口的实现,返回显式度量的高度预转换。 | GraphicElement | ||
用于 ILayoutElement 接口的实现,返回测量宽度预转换的显式。 | GraphicElement | ||
转换元素的大小。 | GraphicElement | ||
转换元素的大小。 | GraphicElement | ||
[覆盖]
绘制元素和/或调整其内容的大小并定位该内容。 | StrokedElement |
data | 属性 |
data:String
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
包含路径段的压缩表示的字符串。这是设置 segments 属性的一种替代方式。设置此属性会覆盖 segments array 属性中存储的任何值。
该值是用于描述每个路径段的以空格分隔的字符串。每个段条目都有一个表示段类型的字符和两个或更多段参数。
如果段命令是大写的,则这些参数是绝对值。如果段命令是小写的,则这些参数是相对值。
下表显示这些段的语法:
段类型 | 命令 | 参数 | 示例 |
---|---|---|---|
Move | M/m | x y | M 10 20 - 将直线移到 10, 20。 |
Line | L/l | x y | L 50 30 - 直线到 50, 30。 |
水平线 | H/h | x | H 40 = 水平线到 40。 |
垂直线 | V/v | y | V 100 - 垂直线到 100。 |
QuadraticBezier | Q/q | controlX controlY x y | Q 110 45 90 30 - 曲线到 90, 30,控制点位于 110, 45。 |
CubicBezier | C/c | control1X control1Y control2X control2Y x y | C 45 50 20 30 10 20 - 曲线到 10, 20,第一个控制点位于 45, 50,而第二个控制点位于 20, 30。 |
闭合路径 | Z/z | 无 | 关闭路径。 |
默认值为 null。
实现
public function get data():String
public function set data(value:String):void
winding | 属性 |
Path | () | 构造函数 |
public function Path()
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
构造函数。
draw | () | 方法 |
endDraw | () | 方法 |
getBoundsXAtSize | () | 方法 |
override public function getBoundsXAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
按指定的元素大小,返回元素边界的 x 坐标。
如果将元素大小调整为特定尺寸,则此方法通常在调用 measure()
方法期间由布局使用,以预测该元素将来的位置。
参数
width:Number — 元素的界限宽度,或要使用首选宽度的 NaN。
| |
height:Number — 元素的界限高度,或要使用首选高度的 NaN。
| |
postLayoutTransform:Boolean (default = true ) — 当 postLayoutTransform 为 true 时,该方法会返回元素边框左上角的 x 坐标。边框位于元素的父坐标空间中,并基于指定的边界大小、布局位置和布局转换矩阵进行计算。
|
Number — 按指定的元素大小,元素边界的 x 坐标。
|
getBoundsYAtSize | () | 方法 |
override public function getBoundsYAtSize(width:Number, height:Number, postLayoutTransform:Boolean = true):Number
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
按指定的元素大小,返回元素边界的 y 坐标。如果将元素大小调整为特定尺寸,则此方法通常在调用 measure()
期间由布局使用,以预测该元素将来的位置。
参数
width:Number — 元素的界限宽度,或要使用首选宽度的 NaN。
| |
height:Number — 元素的界限高度,或要使用首选高度的 NaN。
| |
postLayoutTransform:Boolean (default = true ) — 当 postLayoutTransform 为 true 时,该方法会返回元素边框左上角的 y 坐标。边框位于元素的父坐标空间中,并基于指定的边界大小、布局位置和布局转换矩阵进行计算。
|
Number — 按指定的元素大小,元素边界的 y 坐标。
|
invalidateDisplayObjectSharing | () | 方法 |
override protected function invalidateDisplayObjectSharing():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
通知主机此元素已更改且需要更新其图层的实用程序方法。
measure | () | 方法 |
override protected function measure():void
语言版本: | ActionScript 3.0 |
产品版本: | Flex 4 |
运行时版本: | Flash Player 10, AIR 1.5 |
计算元素的默认大小。此方法是一种高级方法,可在创建 GraphicElement 的子类时覆盖。
您无需直接调用此方法。使用 addElement()
方法将元素添加到 IGraphicElementContainer
容器(例如,组)时,以及调用元素的 invalidateSize()
方法时,Flex 会调用 measure()
方法。
默认情况下您会设置元素的显式高度和显式宽度,Flex 不会调用 measure()
方法,即使您显式调用 invalidateSize()
方法也不例外。若要覆盖此行为,请覆盖 skipMeasure()
方法。
覆盖此方法时,必须设置 measuredWidth
和 measuredHeight
属性以定义默认大小。您可以选择设置 measuredX
和 measuredY
属性以定义相对于元素的原点的默认测量界限左上角。
measure()
的概念点供元素提供其自己的原始或固有界限作为默认值。因此,measuredWidth
和 measuredHeight
属性应由以下几个因素确定:
- 组件需要显示的文本量。
- 组件所显示的 JPEG 图像的大小。
某些情况下,确定默认值的方式并不固定。例如,对于一个简单的 GreenCircle 元素,可能只需在其 measure()
方法中设置 measuredWidth = 100 和 measuredHeight = 100 便可提供合理的默认大小。而在其他情况下(例如 TextArea),相应计算(例如查找合适的宽度和高度,使其刚好适合显示所有文本并拥有黄金矩形的高宽比)所耗费的时间可能会过长。
measure()
的默认实现会将 measuredWidth
、measuredHeight
、measuredX
和 measuredY
属性的值设置为 0
。
<?xml version="1.0" encoding="utf-8"?> <!-- ArrowExample.mxml --> <s:Application name="ArrowExample" xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx"> <s:Panel title="Arrow Graphic Example" width="75%" height="75%" horizontalCenter="0" verticalCenter="0"> <s:Group left="10" right="10" top="10" bottom="10"> <s:Graphic x="100" y="0"> <!-- Use Use compact syntax with absolute coordinates. --> <s:Path data="M 20 0 C 50 0 50 35 20 35 L 15 35 L 15 45 L 0 32 L 15 19 L 15 29 L 20 29 C 44 29 44 6 20 6"> <!-- Define the border color of the arrow. --> <s:stroke> <s:SolidColorStroke color="0x888888"/> </s:stroke> <!-- Define the fill for the arrow. --> <s:fill> <s:LinearGradient rotation="90"> <s:GradientEntry color="0x000000" alpha="0.8"/> <s:GradientEntry color="0xFFFFFF" alpha="0.8"/> </s:LinearGradient> </s:fill> </s:Path> </s:Graphic> <s:Graphic x="200" y="0"> <!-- Use compact syntax with relative coordinates. --> <s:Path data="m 20 0 c 30 0 30 35 0 35 l -5 0 l 0 10 l -15 -13 l 15 -13 l 0 10 l 5 0 c 24 0 24 -23 0 -23"> <!-- Define the border color of the arrow. --> <s:stroke> <s:SolidColorStroke color="0x888888"/> </s:stroke> <!-- Define the fill for the arrow. --> <s:fill> <s:LinearGradient rotation="90"> <s:GradientEntry color="0x000000" alpha="0.8"/> <s:GradientEntry color="0xFFFFFF" alpha="0.8"/> </s:LinearGradient> </s:fill> </s:Path> </s:Graphic> </s:Group> </s:Panel> </s:Application>
Tue Jun 12 2018, 11:04 AM Z