Flash MX──闪出精彩!(4)

软件世界

AS绘图时间控制

Flash作为一款功能强大的矢量动画工具,绘图功能是必不可少的重要部分。相信大家都有过使用Pen tool(钢笔工具)或者pencil tool(铅笔工具)绘制人物与场景的辛苦经历。有时你可能在想,哪一天可以放下鼠标,直接使用AS来制作图形该多好啊。这次Flash MX就提供了这样的功能,虽然不可能完全取代我们手工绘图,但它毕竟是一个很有新意与创造性的功能。更为重要的是如果我们使用Flash MX新提供的createEmptyMovieclip命令(其含义是新建一个空的Movieclip)我们甚至只需要在Flash MX中写AS代码,而不必做任何其他操作,(包括新建Movieclip)就可以得到非常漂亮的效果。对这一重要的改进,你一定兴奋不已吧?下面就跟着我瞧瞧吧!
我们先来了解一下Flash MX的绘图流程:
设置起点→从起点绘制到另一点线条,并设置那个点为新的起点→填充颜色。

一、利用AS进行图形绘制

1)我们来做一个利用AS绘制图形的例子,打开Flash MX,用鼠标选择第一帧,在工作区域下方的Action-Frame面板上输入如下AS(关于此段AS的含义请参考其中的注释):(如(图1))。

图1
图1

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将自动把坐标原点与鼠标点击的点连接起来,当再次点击鼠标时,又将在前一次点击所确定的点与此次点击所画确定点间连线,并如此循环(如(图2))。
图2
图2

二、使用AS控制时间

1)在运行期的处理是通过一个由主程序控制的timer(用其决定一个时间段)来让程序一直处于循环状态,直到用户中断、发生异常错误或系统中断而退出循环进行结束处理。在我们平时制作Flash动画的时候,经常需要获得一段时间间隔来达到我们所想要的效果,通常的做法是利用影片两帧上循环的AS指令来达到延时的目的。现在不同了,Flash MX提供了更简单的方法。我们终于可以控制Timer了。
2)打开Flash MX,鼠标选择第一帧,在工作区域下方的Action-Frame面板上输入如下AS(关于此段AS的含义请参考其中的注释)(如(图3)):

图3
图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之外,没有进行任何其他编辑(如(图4))。
图4
图4

总结:

到本节为止,我想大家对Flash MX已经有了大体上的了解,我们的连载也要告一段落了。Flash MX的出现给我们带来的不只是惊喜,更是一种思维的解放,灵感的迸发。这几篇文章并不是要教你如何精通Flash MX,而是希望利用几个实例表现Flash MX强大而奇妙的功能,从而引发你学习的兴趣,只有有了兴趣,才有可能学好Flash MX。