代码&Demo原作者是:Ric Ewing,Robert Penner, Eric Mueller and Michael。
原来是ActionScript 1的,在AS2中使用不太方便。于是黑羽动手改写了一下,写成了ActionScript 2.0的类。在AS2中使用简单方便,直观。
昨晚整理了一下,写了API注解,今天放上来。
Tips:除了用来直接绘制图形外,更可以使用这些高级图形做各种复杂的Mask,(有的可以做Guide),视觉效果非常棒。
Demo:
点击下载ActionScript 2.0 高级绘图工具类
安装:解压缩,双击mxp文件,即可安装好。
下载安装后,使用方法如下:
1. 导入类
(如果不懂什么是导入类,也没有关系。 只要知道要用GraphicTools时,一定要先写这一句。如果是在帧中,最好写在第一句;在类文件中也写在类声明前面。 只写一次即可。)
import org.kingda.graphics.GraphicTools;
2. 给GraphicTools一个目标MC,然后设定相关图形的参数即可:
//比如说,我创建一个空的MC,d_mc。当然你也可以直接指定已有的mc给GraphicTools
d_mc = _root.createEmptyMovieClip("drawing_layer", 2);//以下两行是设定绘制图形的线条样式,和填充色。这个随便你写。
d_mc.lineStyle(2,0x6688AA);
d_mc.beginFill(0x3366,25);//使用drawPoly画一个多边形,参数的意思看我的API解释
GraphicTools.drawPoly(d_mc,150,75,8,80,30);//结束填充,大功告成
d_mc.endFill();
如蒙装载,请标注我的Blog链接,黑羽翔天Blog,便于日后升级版本添加功能时,闪友们能到我网站来及时更新。
3:API,
//画扇形
// target_mc是目标MovieClip。 设定后,GraphicTools就在其中画图了。
// x,y 是画笔起点在target_mc中的相对坐标
//startAngle:开始角度。
// arc: 扇形的度数。当然不能大于360度。
// raduius: 扇形所处圆的半径
// yraduius: 如果不填,那么就默认和半径一样。填了,就是纵轴半径长度。画出椭圆形的扇形。
GraphicTools.drawPie(target_mc:MovieClip,
x:Number, y:Number,
startAngle :Number,
arc :Number,
radius :Number,
yRadius :Number)//画矩形
//cornerRadius:是画圆角矩形用的,指定圆角的半径,默认为0
GraphicTools.drawRect(target_mc:MovieClip,
x:Number , y:Number,
w:Number , h:Number,
cornerRadius:Number)//画弧线
//与扇形大致相同,返回一个Object,里面是画线后画笔所在坐标
GraphicTools.drawArc(target_mc:MovieClip,
x:Number, y:Number,
radius:Number, arc:Number,
startAngle:Number, yRadius:Number):Object //Object:{x:xPosition,y:yPostion}//画多边形
//radius表示中心到顶点的距离
//angel指初始多边形转动角度,默认为0
GraphicTools.drawPoly(target_mc:MovieClip,
x:Number, y:Number,
sides:Number, radius:Number,
angle:Number)
//画星形
//innerRadius:顶点到内顶点的距离
//outerRadius:顶点到外顶点的距离
GraphicTools. drawStar(target_mc:MovieClip,
x:Number, y:Number,
points:Number, innerRadius:Number,
outerRadius:Number, angle:Number)//画椭圆
//yRadius缺省,或者填和radius一样的值那就是圆形了。
GraphicTools.drawOval(target_mc:MovieClip,
x:Number, y:Number,
radius:Number, yRadius:Number)//画爆炸形
GraphicTools. drawBurst(target_mc:MovieClip,
x:Number, y:Number,
sides:Number,
innerRadius:Number, outerRadius:Number,
angle:Number)
//画点状虚线
//start x,y 是起点坐标
// end x,y 是终点坐标
//len是点状线的点长度
//gap是点和点之间的距离
GraphicTools.dashTo(target_mc:MovieClip,
startx:Number, starty:Number,
endx:Number, endy:Number,
len:Number, gap:Number)
//画齿轮
//holeSides是齿孔形状的边数
//holeRadius是中心到齿孔顶点的距离
GraphicTools.drawGear(target_mc:MovieClip,
x:Number, y:Number,
sides:Number,
innerRadius:Number, outerRadius:Number,
angle:Number, holeSides:Number,
holeRadius:Number)







Comments (14)
做了个画图,就是不知道怎么做油漆桶填色,怎么判断封闭图形?
Posted by vkt | August 24, 2006 10:37 AM
Posted on August 24, 2006 10:37
我前不久也曾改过,跟你的一样.
我的下载地址[http://www.wlash.com/CODE/AS2/com/idescn/draw/ExShape.as]
Posted by whohoo | August 24, 2006 12:32 PM
Posted on August 24, 2006 12:32
我前不久也曾改过,跟你的一样.
我的下载地址[http://www.wlash.com/CODE/AS2/com/idescn/draw/ExShape.as]
Posted by whohoo | August 24, 2006 12:40 PM
Posted on August 24, 2006 12:40
太好了,赫赫~~
有了Thor的GDI,又有了黑宇的GDI……
我再也不写GDI了~~哈哈,hiahia
Posted by awflasher | August 24, 2006 2:02 PM
Posted on August 24, 2006 14:02
好东西,收了,3x!
Posted by lzyy | August 24, 2006 2:37 PM
Posted on August 24, 2006 14:37
to whohoo
果然大同小异。^_^
还有其他有趣的绘图函数吗?
Posted by 黑羽 | August 24, 2006 4:12 PM
Posted on August 24, 2006 16:12
to aw:
Thor的GDI在哪儿啊?
发个链接过来see see ^_^
Posted by 黑羽 | August 24, 2006 4:14 PM
Posted on August 24, 2006 16:14
to vkt
不封闭也是可以填充色的。
具体演示Flash帮助有。
Posted by 黑羽 | August 24, 2006 4:26 PM
Posted on August 24, 2006 16:26
直接发class多好,mxp这东西装完类被塞到哪里了?找都找不到
Posted by N神 | August 25, 2006 9:23 AM
Posted on August 25, 2006 09:23
如果看一下Rebert Penner的《flash编程创意与实现》的话,我想会做出来更好的东西的。
to vkt
这个只是思路的问题
http://bbs.51js.com/viewthread.php?tid=59918&fpage=1
这个是以前写着玩的。
to 黑羽
http://flash.pallove.net/flash/download/classes/thor.rar
地址下载
Posted by 逍遥云 | August 25, 2006 9:31 AM
Posted on August 25, 2006 09:31
晕,评论信息没有存下来,奇怪,再来
如果看过Robert Penner的《flash编程创意与实现》的话,我想写出来的东西会更加好。
to:vkt
不封闭的话,要记住起始点,然后自动闭合
http://bbs.51js.com/viewthread.php?tid=59918
以前写的例子
to:黑羽
http://flash.pallove.net/flash/download/classes/thor.rar
下载地址
Posted by 逍遥云 | August 25, 2006 9:37 AM
Posted on August 25, 2006 09:37
to 逍遥云
thx,thor的东东我下下来了。除了GDI还有一些其他有用的东东吗。呵呵
Posted by 黑羽 | August 25, 2006 1:38 PM
Posted on August 25, 2006 13:38
不错啊,很喜欢你的图形类,不过感觉有些怪异的形状,在RIA应用中很少用的样子,呵呵
Posted by Kyomic | September 8, 2006 9:44 PM
Posted on September 8, 2006 21:44
en,能否给出类文件呢
Posted by tween | September 28, 2006 3:45 PM
Posted on September 28, 2006 15:45