액션스크립트의 Graphihcs클래스를 사용해서 선을 그릴 때, 점선이나 쇄선 등을 지원하지 않아서 만들어 봤습니다.
전에 올린 ActionScript로 점선 그리기2: Marching Ants 글에서 사용한 것과 비슷한 방식으로 BitmapData와 Graphics.beginBitmapFill()을 사용했습니다.
var bd:BitmapData;
var DASH:BitmapData = new BitmapData(10, 1, true, 0x0);
var DOT:BitmapData = new BitmapData(4, 1, true, 0x0);
var DASH_DOT:BitmapData = new BitmapData(16, 1, true, 0x0);
var DASH_DOT_DOT:BitmapData = new BitmapData(20, 1, true, 0x0);
var c:uint = 0xFF000000;
var rect:Rectangle = new Rectangle(0, 0, 0, 1);
rect.width = 5;
DASH.fillRect(rect, c);
rect.width = 2;
DOT.fillRect(rect, c);
rect.width = 10;
DASH_DOT.fillRect(rect, c);
DASH_DOT_DOT.fillRect(rect, c);
rect.x = 12;
rect.width = 2;
DASH_DOT.fillRect(rect, c);
DASH_DOT_DOT.fillRect(rect, c);
rect.x = 16
DASH_DOT_DOT.fillRect(rect, c);
bd = DASH;
var line:Sprite = new Sprite();
addChildAt(line, 0);
var g:Graphics = line.graphics;
function draw():void
{
line.x = p1.x;
line.y = p1.y;
var xx:int = p2.x - p1.x;
var yy:int = p2.y - p1.y;
g.clear();
g.beginBitmapFill(bd, null, true);
g.drawRect(0, 0, Math.sqrt(xx * xx + yy * yy), 1);
g.endFill();
line.rotation = Math.atan2(yy, xx) / Math.PI * 180;
}