![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIml2Zu8kNPRFM2UTN1QjN5ITMfBzLcFzMvwVMwETMwIzLcRnbl1GajFGd0F2LcRXZu5ibkN3YukGavw1LcpDc0RHaiojIsJye.gif)
借助繪制虛線的圓形的一種簡單的靈感,于是嘗試繪制一下虛線矩形。采用想法很傳統,通過循環描點的方式來對其進行連線。
采用兩個循環組合,第一個循環是繪制橫方向的線條,一共兩條
第二個循環是繪制縱方向的線條,一共是兩條
兩種都是采用最基本moveTo 和lineTo組合方式進行連線,當中連線的方式采用間隔的辦法嘗試實作這種虛線效果。
Ok,繪制完成了。高興了,但是細心發現這種繪制方式有一些缺陷或者講不夠完美,四邊角不能有效封閉,看起來很不爽。暫時先用一下,急用的時候不妨修改試試。
import flash.display.Graphics;
import flash.display.Shape;
var shape:Shape=new Shape();
addChild(shape);
shape.x = 250;
shape.y = 200;
shape.graphics.lineStyle(1,0xff0000);
//設定線條樣式和顔色;
//繪制虛線矩形
drawDottedRect(shape.graphics,200,100,4);
function drawDottedRect(g:Graphics,width:Number,height:Number,gap:Number):void
{
if (gap < 0)return;
var partW:int = width / gap;
var partH:int = height / gap;
for (var i:int=0; i<partW; i++)
{
if (i % 2 != 0)
{
drawLine(g,i*gap,0,(i+1)*gap,0);
drawLine(g,i*gap,height,(i+1)*gap,height);
}
}
for (var j:int=0; j<partH; j++)
{
if (j % 2 != 0)
{
drawLine(g,0,j*gap,0,(j+1)*gap);
drawLine(g,width,j*gap,width,(j+1)*gap);
}
}
}
//畫線
function drawLine(g:Graphics,startX:Number,startY:Number,endX:Number,endY:Number):void
{
g.moveTo(startX,startY);
g.lineTo(endX,endY);
}