您的位置:首页 > 其它

flash 绘图API:绘制虚线矩形

2011-01-31 14:54 232 查看


借助绘制虚线的圆形的一种简单的灵感,于是尝试绘制一下虚线矩形。采用想法很传统,通过循环描点的方式来对其进行连线。

采用两个循环组合,第一个循环是绘制横方向的线条,一共两条

第二个循环是绘制纵方向的线条,一共是两条

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

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: