|
Flash MX作为一款功能强大的矢量动画工具,绘图是其必不可少的重要部分。相信大家都有过使用Pen tool(钢笔工具)或者pencil tool(铅笔工具)绘制人物与场景的经历。但是你有没有想过,有一天你居然可以放下鼠标,忘记那让人手腕酸痛的拖拽曲线,而直接使用AS来制作图型呢?Flash MX就提供了这样的功能,虽然不可能完全取代我们手工绘图,但是毕竟是一个很有新意与创造性的功能。更为重要的是如果我们使用在Flash MX新提供的createEmptyMovieclip命令(其含义是新建一个空的Movieclip),我们甚至只需要在Flash MX中写as代码,而不必做任何其他操作,(包括新建Movieclip)就可以得到非常漂亮的效果。
学习过计算机图形学的朋友都知道,在计算机中所有的图形,包括现在盛行的三维游戏内部的三维造型也都是由三角形拼合而成的。也许不久以后,我们真的能够看到使用Flash MX 开发的三维图象引擎。我们先来了解一下Flash MX的绘图流程:
设置起点-〉从起点绘制到另一点线条,并设置那个点为新的起点-〉填充颜色。
利用AS进行图形绘制:
1)我们来做一个利用AS绘制图形的例子,打开Flash MX,鼠标选择第一帧,在action-frame面板上输入如下AS(关于此段AS的含义请参考其中的注释):
createEmptyMovieclip("pcdraw",1); //新建一个空的Movieclip命名为pcdraw pcdraw.onMouseDown=function(){this.lineto(_root._xmouse,_root._ymouse)}; //影片播放时,当鼠标按下,则使用当前line style绘制线段连接初始点与鼠标按下的点,而如果调用此方法前没有moveto方法,则从(0, 0)开始画线。 pcdraw.linestyle(5, 0x006699, 100); //定义线条风格。你可以在路径中间调用以获得不同的线条风格。
2)lineStyle的使用方法讲解
myMovieclip.lineStyle ([thickness[,rgb[,alpha]]])
参数: thickness:指定线条粗细(必须)。有效值0-255,0即hairline,如小于0,则认为0,如大于255,则认作255。 rgb:16 进制表示的颜色值。 alpha:线条的透明度,取值范围在0-100之间。
由此我们可以知道,我们在实例中将得到粗5px,颜色为深蓝色,完全不透明的直线。
3)按下CTRL+ENTER开始测试影片,我们可以看到,当我们使用鼠标在影片范围内单击时,Flash MX将自动的把坐标原点与鼠标点击的点连接起来,当再地点击鼠标时,又将在第一次点击点与此次点击点间连线,并如此循环。
试试用鼠标在上面画图吧!
使用as控制时间
1) 在运行期的处理是通过一个主程序时钟来让程序一直处于循环状态,直到用户、异常错误或系统中断而退出循环到结束处理。在我们平时制作flash动画的时候,经常需要获得一段时间间隔来达到我们所想要的效果,通常的做法是利用影片两帧上循环的as指令来达到延时的目的。现在不同了,Flash MX提供了更简单的方法。我们终于可以控制Timer了。
2) 打开Flash MX,鼠标选择第一帧,在工作区域下方的Action-Frame面板上输入如下AS(关于此段AS的含义请参考其中的注释):(如图3|)
createEmptyMovieclip("pcking",1); //新建一个空的Movieclip命名为pcking function draw () { //声明draw()函数 pcking.lineStyle(random(++i/100),++i*random(30),(++i/30)); //利用random函数取随机数来决定线条的颜色,粗细以及透明度 tempx=random(500); tempy=10; //声明变量,用来决定线段的开始端点的坐标 pcking.moveTo(tempx,tempy); pcking.lineTo(tempx, tempy+300); //用线段连接坐标为tempx,tempy的端点与坐标为tempx, tempy+300的端点 } idDream=setInterval(draw,50); //每隔50毫秒重复执行一次函数draw()
3)setInterval()的使用方法讲解
flash MX开始支持Javascript、Vbscript一样的timer,即使用setInterval()设定一个时间间隔,每次执行一个函数,在Javasctipt中最典型的应用是网页上的跑马灯或本机时间显示器。setInterval()是一个多态的方法,用于每隔一定时间使用指定的参数执行一个函数或一个对象的方法常用的语法如下:
setInterval( function, time )
function为你想要循环执行的函数。 time为你设置的时间间隔,要注意的是,其单位为豪秒,如设置为1000则正好是间隔1秒。
4)按下CTRL+ENTER开始测试影片,我们可以看到一根根粗细不一的彩色线条出现在屏幕上,越来越多。而实现这一切除了使用一段并不复杂的AS之外,没有进行任何其他编辑。(演示如下,为避免大家cpu受累,增加了一些控制)
点击黄色小按钮开始绘图;点击红色小按钮停止绘图
总结:
Flash mx的出现给我们带来的不只是惊喜,更是一种思维的解放,灵感的并发。文章的重点并不仅仅是要教你如何精通Flash MX,而是希望利用实例表现Flash MX强大而奇妙的功能,从而因发你学习的兴趣,只有有了兴趣,才有可能学好Flash MX。本文在写作过程中参考了画魔等朋友的文章,在此向他们表示感谢。最后,祝大家闪得更亮,闪得更精彩。 |