体验Flash MX(4):用代码绘图
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-15
还记得Flash 4的时候Action只是协助Flash把动画做得更好,或增加一些普通的外部命令、简单的流程控制;到了Flash 5已经可以作为一个较成熟的Script运行环境了,不过很多人还是当它为矢量的Photoshop来用;经过了不算太长的1年多,可爱的Flash MX终于出现了,她要告诉我们的是——你只需要键盘就足够了。 从几何图形学来讲,所有的图形都可以用三角形表示,这个定理也适用于我们通常所看到的2D图片和3D图形。很多次,有人羡慕的说,阿,我要是可以用代码完成你的作品该多好啊?Ok,我们给你Flash MX,只要你不嫌累并且打字快,你也可以做到。确实,这是一个矛盾的时间效率话题,也许不同的人会有不同的解释,不过作为Flash MX的教程,我可以主观地先告诉你Flash MX可以做到怎样的程度,然后我们再讨论这个矛盾。 Flash MX的画线功能更类似于小的时候学习用的LOGO语言(就是那个小乌龟)。Macromedia公司把这些功能很好的嵌入了MovieClip对象中,并且每条语句都十分有用,如果善加利用,甚至可以用这些来写出3D的引擎,相信在未来的几个月内会有这样的东西出现。好了,先不管未来,我们先看看她的绘画流程: 设置起点-〉从这个起点绘制到其他的点线条,并设置那个点为新的起点-〉填充颜色。 这个流程也基本是所有类似绘图引擎的过程,我们先用几行简单而且十分有用的代码来形象的说明这个流程(注意,今天不可以用手画,偷懒对自己可没好处……这句话今天相反) 新建一个文件,在主场景第一帧加入代码: createEmptyMovieClip("drawobj",1);//这条语句在第一天已经出现,就是要动态建立一个MovieClip。 drawobj.onMouseDown=function(){this.lineto(_root._xmouse,_root._ymouse)}; drawobj.linestyle(.1, 0x111111, 100); 效果是不是很酷?三行代码基本上跟Windows画板差不多啦。我们主要是用了lineTo这个函数,它的主要功能是从当前起点绘制一条直线到目标点,当然,你只要给目标点的x和y坐标即可;但你知道这个还不行,需要给你要画的线条一种样式,这就是linestyle,我们在这里画的就是0.1厚度,灰黑色的,Alpha为100(不透明)的线。(图1) (图1,……不是画魔画的L) Ok,抓笔的人已经松开了吧。我们要在lineto的基础上改进一下,加入如下代码: createEmptyMovieClip("drawobj", 1); Movieclip.prototype.makeBox = function(x, y, l) { this.lineto(x, y+l); this.lineto(x+l, y+l); this.lineto(x+l, y); this.lineto(x, y); }; //init with (drawobj) { moveto(100,100); beginfill(0x333333, 100); linestyle(.1, 0x111111, 100); makeBox(100,100,100); endfill(); } 我们定义的makeBox如其名,就是画正方形的,它在我们的初始化部分会用到,l参数是边长。当程序初始化的时候,我们对drawobj进行操作,首先用moveto来改变它的位置,接着我们会用到fill;它包括两部分,一个是普通的beginfill,是设置填充的参数起点,当我们用makeBox画好了正方形后,必须要用到endfill才可以更新当前的fill,否则什么beginfill也没什么意义(虽然我不加也照样更新)。(图2) (图2) 再接再厉,我们再结合另一个方法来看看程序作出来的图形的魅力。加入代码: createEmptyMovieClip("drawobj", 1); drawobj.linestyle(.1, 0x111111, 100); for (var i=0; i<=50; i+=.1) { with (drawobj) { moveto(random(300),random(300)); beginfill(random(1048576),random(100)); curveto(i*random(10),i*random(10),i*rando |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于体验Flash MX(4):用代码绘图的所有评论