提要通过一个下雨特效的制作,介绍FLASH AS动作脚本的使用,主要是利用 Function、Duplicate-MovieClip、SetProperty、Set Variable、If、SetInterval,实现特效的制作、速度的快慢控制、选择播放的顺序。
关键词:flash;AS脚本;下雨特效
一、引言
flash是Macromedia公司推出的一种优秀的交互式动画制作软件,具有体积小、互动性强、兼容性好的特点,一直受到动画制作者的青睐。如今,因特网上已具有成千上万个flash站点,让人尽情地享受这种多媒体技术所带来的动感,flash动画势必将成为未来网页的一大主流。在flash动画制作过程中,AS动作脚本扮演着一个重要的角色,动作脚本是flash动画中使用的程序脚本,通过动作脚本,可以对动画进行高级的逻辑控制,能实现时间轴的特殊效果,能帮助用户按照自己的想法更加准确地创建电影。效果更加精彩纷呈,但是如何能掌握好flash动作脚本制作技术,已经成为广大学习者迫切需要解决的问题。本文通过制作下雨特效实例,让读者了解和掌握一些动作脚本的运用。
二、认识和理解动作脚本术语
和任何脚本撰写语言一样,flash动作脚本既有和其他语言相同之处,比如数据类型、关键字、运算符、表达式、函数、变量等等,但也有自己的独特专用术语,它本身具有独特的专业含义,只有准确地理解术语,才能读懂语句,真正地理解脚本的含义,逐步构建自己编写动作脚本的基础。
1、动作:是在播放SWF文件时指示SWF文件执行某些任务的语句。
2、类:类是可以创建与定义新类型的数据类型,若要定义类,需在外部脚本文件中使用class关键字。
3、构造函数:构造函数是用于定义类的属性和方法的函数。
4、事件:事件是SWF文件播放时发生的动作。例如,在加载影片剪辑,播放头进入帧,用户单击按钮或影片剪辑,或者用户按下键盘上的键时,会产生不同的事件。
5、实例:实例是属于某个类的对象,类的每个实例均包含该类的所有属性和方法。
6、方法:方法是与类关联的函数。
7、实例名称:实例名称是脚本中用来表示影片剪辑和按钮实例的唯一名称,可以使用属性面板为舞台上的实例指定实例名称。
8、对象:对象是属性和方法的集合,每个对象都有其各自的名称,并且都是特定类的实例。
9、包:包是位于指定的类路径目录下,包含一个或多个类文件的目录。
10、属性:属性是定义对象的特性。
11、目标路径:目标路径是SWF文件中影片剪辑实例名称变量和对象的分层结构地址。
三、制作特效用到的AS脚本
1、Function——用户自定义函数。定义一个函数Function,要后跟函数名、参数列表和代码块。函数定义的形式为:
Function函数名(参数列表){代码块;}
其中,Function表明函数的头部。函数名,是该函数的名称,一般都是选用能够代表函数功能的词或词组。参数列表,是用来给函数传递参数,参数可有可无。代码块,放在大括号里面,是执行Function函数的语句,可以有多个语句组成。
2、DuplicateMovieClip——复制影片剪辑。语法形式为:duplicateMovieClip(目标、新名称、深度)。目标是指要复制的电影剪辑的名称和路径,新名称是指复制后的电影前辑实例名称,深度是指新复制的影片剪辑的唯一深度级别。复制影片经常要与影片属性控制(特别是_x,_y,_alpha,_rotation,_xscale,_yscale等属性)结合才能更好地发挥复制效果。复制影片还经常要和循环语句配合,才能复制多个影片剪辑。
3、SetProperty——设置影片剪辑的属性。语法形式为:setProperty(属性,目标,值)。属性是指你想控制影片剪辑的那些属性,Flash给我们提供了14个影片剪辑的属性,我们可以根据需要来选择设置。值是指设置的随机函数值。
4、Set Variable——给变量赋值。与其他动作不同,它并不在脚本中出现,而是在编写脚本时,使用它来创建赋值语句框架,便于填写变量和变量的值。
5、if——如果。如果条件符合,即true,就执行代码;条件不符合,就不执行。语法为:if (条件){//代码}。
6、setInterval——设置时间间隔。语法形式为:setInterval(函数名,间隔时间)。函数名即为Function已自定义的函数名,间隔时间以秒为单位。
四、下雨特效的制作过程
通过一个实例,来完成一个雨点飘落过程,且随机出现大小和速度不同的雨点。通过添加几句代码可以省去很多繁杂的动画处理。
2、新建图形元件,名称命名为下雨,在这里可以起中文名称,在注册点位置用直线绘制雨点,颜色为白色。新建影片剪辑元件,命名为雨点影片。用直线工具绘制细长雨点,再在第三十帧处按下快捷键 F6插入关键帧,将所在第三十帧的雨点向下方拖动一段距离。在第一帧至第三十帧时间轴添加动画(运动)变化,然后添加运动引导层,画一条直线作为雨点飘落的路径。在第一帧上:把雨点图形跟曲线顶部对齐,注意要把图形的中心圆放在线条上;在最后一帧上:把雨点图形跟曲线底端对齐,形成了一个雨点顺着路径运动的动画。
3、回到场景中,把库面板中的雨点影片剪辑元件拖拽到画布中。在属性面板上,把影片剪辑名称命名为rain,这个必须以英文命名。再在第三十帧处按下快捷键F5插入帧。此目的是,和影片剪辑元件中的雨点落下的时间保持一致,测试动画即可。如动画运动的大小跟画面尺寸不一致,可在雨点影片剪辑元件中进行调整。
4、动作面板有两种编辑模式:标准模式和专家模式,可以在两种模式之间进行切换。在标准模式的动作面板下,打开目录双击语句,右边的语句描述框中将显示它的描述,这种模式比较适合初学者。在专家模式下,可以在编辑器中直接输入动作脚本,比较适用于对动作脚本比较熟练的用户。本文所用的代码都是在标准模式下完成的。有些动作设置参数时,在一些参数框右边有一个表达式复选框。对于这种参数,应该根据你输入的参数的类型决定是否要勾选此复选框。例如,我们使用Set Variable动作,给变量n赋值。如果你给n提供的参数是一个字符串常数,就不要勾选此复选框。反之,则要就要勾选该复选框。新建图层2,在初始帧上设置动作。//设置变量n,值为1,n=1。
5、在第二层的第一帧放上AS脚本,脚本如下:
C=1;
//定义变量C初值为1
在第二帧放上AS脚本,脚本如下:
function aa(){
//定义名称为aa的function函数
duplicateMovieClip("mc",c,c);
//执行复制影片剪辑命令,在这里出现的新名称
setProperty(c,_x,random(550));
//设置各影片剪辑_X属性,在550px以内的随机
setProperty(c,_y,random(-100));
//设置各影片剪辑_Y属性,在550px以内的随机
updateAfterEvent();
c++;
//设置变量为递增
}
kk=setInterval(aa,90);
//最后对aa函数,作周期循环。比如 90秒执行一次(时间可自行设定),时间的大小可调节稀疏度的大小。
按Ctrl+Enter测试文档,最终效果如图1所示。(图1)
主要参考文献:
[1]柴孟华,李胜伟.深入浅出FLASH MX 2004动画设计[M].北京:中国铁道出版社,2006.
[2]方晨.操作与实例FLASH MX 2004中文版[M].上海:上海科学普及出版社,2004.
[3]齐锦刚,曹丽云等.Flash MX 2004活学活用300问[M].北京:机械工业出版社,2005.
[4]李学进,杨微.Flash在教学中的应用[J].电脑学习,2006.2.
[5]章精设,缪亮等.Flash ActionScript 2.0编程技术教程[M].北京:清华大学出版社,2005.