AS3绘制空心图形的几种方法
分类:个人日志
来源:原创
时间:2015-03-22 22:07:56
本文以矩形为例进行说明,以下方法都可以生成一个尺寸是50*50,边框宽度为2的红色空心矩形,代码比较相似。
方法一、
var stamp:BSprite = new BSprite();
stamp.graphics.beginFill(0xff0000, 1);
stamp.graphics.drawRect(0, 0, 50, 50);
stamp.graphics.drawRect(2, 2, 46, 46);
stamp.graphics.endFill();
这种方法绘制的矩形外围边框有像素,里面是透明的但无像素,因此里面无法感知鼠标事件。
方法二、
var stamp:BSprite = new BSprite();
stamp.graphics.beginFill(0xff0000, 0); //填充里面的像素,填充范围为边框所圈起来的部分,去掉本行则里面无像素填充
stamp.graphics.lineStyle(2, 0xff0000, 1, true);
stamp.graphics.drawRect(0, 0, 48, 48); //由于边框设置为2,此处应该减去
stamp.graphics.endFill();
这种方法绘制的矩形外围边框有像素,里面是透明的但也有像素(第二行存在时),因此里面可以感知鼠标事件。使用本方法由于设置了边框为2,所以绘制的时候要减去2才能绘制出50*50的图形。
方法三、
var stamp:BSprite = new BSprite();
stamp.graphics.beginFill(0xff0000, 0); //填充里面的像素,填充范围为边框所圈起来的部分,去掉本行则里面无像素填充
stamp.graphics.lineStyle(2, 0xff0000, 1, true);
stamp.graphics.moveTo(0, 0);
stamp.graphics.lineTo(48, 0); //由于边框设置为2,此处应该减去
stamp.graphics.lineTo(48, 48);
stamp.graphics.lineTo(0, 48); //绘制到此处时会自动连接到起始点形成封闭图形,剩余一条线可省去,但前提是第2行存在的情况下,否则不会自动封闭图形
stamp.graphics.endFill();
这种方法绘制的矩形外围边框有像素,里面是透明的但也有像素(第二行存在时),因此里面可以感知鼠标事件。使用本方法由于设置了边框为2,所以绘制的时候要减去2才能绘制出50*50的图形。使用线条绘制,优点是灵活,可以绘制出各种图形,缺点是代码量比较大,但对于api里面没有提供绘制方法的图形这是很好的方法。
- 默认分类(20)
- J2EE(25)
- Java(56)
- PHP(55)
- SEO(10)
- 网页设计(20)
- 网站建设(37)
- 数据库(7)
- JavaScript(17)
- JQuery(6)
- MySQL(20)
- SQL Server(6)
- Access(1)
- Oracle(6)
- office(6)
- Dreamweaver(4)
- Photoshop(12)
- Flash(9)
- Fireworks(13)
- CSS(14)
- HTML(4)
- .NET(7)
- ASP(2)
- DB2(1)
- Ajax(2)
- Linux(12)
- Struts(7)
- Hibernate(8)
- Spring(2)
- Jsp(22)
- Asp(8)
- C#(3)
- C++(1)
- 网络安全(5)
- 软件工程(7)
- XML(1)
- English(2)
- 计算机等级考试(2)
- 计算机病毒(4)
- 个人日志(76)
- 互联网(15)
- ActionScript(10)
- Android(3)
- 数据结构与算法(1)
- 游戏策略(3)
- 美文翻译(2)
- 编程开发(19)
- 计算机应用(4)
- 计算机(10)
- Unity3d(6)
- 其他(1)
- egret(1)