public static const BEVEL:String = "bevel"
运行时版本: | AIR 1.0 Flash Player 9 |
在 flash.display.Graphics.lineStyle()
方法的 joints
参数中指定斜角连接。
public static const MITER:String = "miter"
运行时版本: | AIR 1.0 Flash Player 9 |
在 flash.display.Graphics.lineStyle()
方法的 joints
参数中指定尖角连接。
public static const ROUND:String = "round"
运行时版本: | AIR 1.0 Flash Player 9 |
在 flash.display.Graphics.lineStyle()
方法的 joints
参数中指定圆角连接。
下例使用 JointStyleExample 类显示应用于三组连接线的三种不同联接点样式的结果。执行下列步骤可完成该任务:
-
每条线的属性设置如下所示:
- 将线条长度设置为 80 像素。
- 将边框颜色设置为橙色。
- 将边框大小设置为 30 像素。
- 将加亮颜色设置为灰色。
- 将加亮大小设置为 0 像素。
- 将 Alpha 设置为 1,使其成为实线。
- 将像素提示设置为 false(不提示笔触采用全部像素)。
- 将线条缩放模式设置为正常,这将缩放粗细。
- 声明了边框端点和尖角限制,但未进行设置,因此使用默认值。
-
类构造函数创建了三组两条连接的线段。线段的起始位置为 x = 0, y = 0,这是通过使用三种联接点样式(尖角、圆角和斜角)调用
doDrawCorner()
方法三次实现的。对 doDrawCorner()
的三次调用均使用先前列出的联接点样式和属性,来绘制两条连接的线段以及关联的线条加亮效果。实现此操作的方法是:首先创建一个新的 Shape 对象 child
,然后使用 Graphics 类的方法来设置线条样式,并绘制线条和加亮效果。child
的每个实例都添加到显示列表中,并且在舞台上快速绘制。
-
然后使用
refreshLayout()
方法,在 y = 80 像素处并从 x = 80 像素处开始以 25 像素的线段间距重绘连接的线段。
package {
import flash.display.DisplayObject;
import flash.display.Graphics;
import flash.display.JointStyle;
import flash.display.LineScaleMode;
import flash.display.Shape;
import flash.display.Sprite;
public class JointStyleExample extends Sprite {
private var size:uint = 80;
private var borderColor:uint = 0xFFCC00;
private var borderSize:uint = 30;
private var highlightColor:uint = 0x666666;
private var highlightSize:uint = 0;
private var gutter:uint = 25;
private var borderAlpha:uint = 1;
private var borderPixelHinting:Boolean = false;
private var borderScaleMode:String = LineScaleMode.NORMAL;
private var borderCaps:String;
private var borderMiterLimit:uint;
public function JointStyleExample() {
doDrawCorner(JointStyle.MITER);
doDrawCorner(JointStyle.ROUND);
doDrawCorner(JointStyle.BEVEL);
refreshLayout();
}
private function doDrawCorner(jointStyle:String):void {
var halfSize:uint = Math.round(size / 2);
var child:Shape = new Shape();
child.graphics.lineStyle(borderSize,
borderColor,
borderAlpha,
borderPixelHinting,
borderScaleMode,
borderCaps,
jointStyle,
borderMiterLimit);
child.graphics.lineTo(0, 0);
child.graphics.lineTo(size, 0);
child.graphics.lineTo(halfSize, size);
child.graphics.endFill();
child.graphics.moveTo(0, 0);
child.graphics.lineStyle(highlightSize, highlightColor);
child.graphics.lineTo(0, 0);
child.graphics.lineTo(size, 0);
child.graphics.lineTo(halfSize, size);
addChild(child);
}
private function refreshLayout():void {
var ln:uint = numChildren;
var child:DisplayObject;
var lastChild:DisplayObject = getChildAt(0);
lastChild.x = size;
lastChild.y = size;
for (var i:uint = 1; i < ln; i++) {
child = getChildAt(i);
child.x = gutter + lastChild.x + lastChild.width;
child.y = size;
lastChild = child;
}
}
}
}