天天看點

flash 繪圖API:繪制虛線矩形

flash 繪圖API:繪制虛線矩形

 借助繪制虛線的圓形的一種簡單的靈感,于是嘗試繪制一下虛線矩形。采用想法很傳統,通過循環描點的方式來對其進行連線。

采用兩個循環組合,第一個循環是繪制橫方向的線條,一共兩條

                          第二個循環是繪制縱方向的線條,一共是兩條

兩種都是采用最基本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);

}

繼續閱讀