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); }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值