public static const BEVEL:String = "bevel"
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Задает использование скошенных стыков сегментов параметром joints
метода flash.display.Graphics.lineStyle()
.
public static const MITER:String = "miter"
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Задает использование параметром joints
метода flash.display.Graphics.lineStyle()
угловых стыков сегментов.
public static const ROUND:String = "round"
Язык версии : | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0, Flash Player 9 |
Задает использование круглых стыков сегментов параметром joints
метода flash.display.Graphics.lineStyle()
.
В следующем примере используется класс JointStyleExample для иллюстрации применения разных стилей стыков к трем группам соединенных линий. Это можно сделать, выполнив следующие действия.
- Для каждой линии заданы следующие свойства.
- Длина линии — 80 пикселов.
- Цвет рамки — оранжевый.
- Размер рамки — 30 пикселов.
- Цвет подсветки — серый.
- Размер подсветки — ноль пикселов.
- Значение альфа-канала — 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;
}
}
}
}