[AS3]基于AS3语言绘制空心图形的方法汇总附源代码
本文以矩形为例进行说明,以下方法都可以生成一个尺寸是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();
酷播官方cuplayer.com提示:这种方法绘制的矩形外围边框有像素,里面是透明的但无像素,因此里面无法感知鼠标事件。
方法二、
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();
酷播官方cuplayer.com提示:这种方法绘制的矩形外围边框有像素,里面是透明的但也有像素(第二行存在时),因此里面可以感知鼠标事件。使用本方法由于设置了边框为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();
酷播官方cuplayer.com提示:这种方法绘制的矩形外围边框有像素,里面是透明的但也有像素(第二行存在时),因此里面可以感知鼠标事件。使用本方法由于设置了边框为2,所以绘制的时候要减去2才能绘制出50*50的图形。使用线条绘制,优点是灵活,可以绘制出各种图形,缺点是代码量比较大,但对于api里面没有提供绘制方法的图形这是很好的方法。
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例