Flash动画片制作完全分解──基本的动画制作(3)
网络与通信
前面我们学习了用Flash制作帧动画、Motion动画、Shape动画。这期我们讲解第四种基本动画制作方式。
Action Script动画
在这一节中,将学习如何使用Flash MX中内置的程序语言Action Script(简称AS)进行动画的制作。AS是一个神奇的工具,可以让我们轻松制作各种复杂的效果,并且可以在很大程度上提高设计者的工作效率。由于AS的语法过于复杂,这期的主要目的是使大家了解什么是AS,怎样使用AS,AS可以做什么等问题,以揭开AS神秘的面纱。
下面我们就以如何在动画中产生随机出现的漂浮气泡为例来进行AS动画的讲解。
步骤1:
使用菜单命令“Insert→Symbol”新建一个元件命名为“AS水泡动画”,打开Library面板从中选出在上一期中绘制好的元件“水泡动画”,将它拖曳到工作区域中。
步骤2:
鼠标点击“水泡动画”,在工作区域下方的属性面板上为此动画实例指定“实例名称(Instance Name)”,在属性面板上的“Name”文本框中输入Ball,即将此实例名称设置为了Ball。以后就可以在AS中以这个名称来调用此动画了(图1)。

步骤3:
使用菜单命令“Insert→Layer”,在时间轴上新建一层(图2)。用鼠标选择这一层上第1帧,打开工作区域下方的Action面板。点击“View Option”按钮,在弹出的菜单中选择“Expert Mode(专家模式)”,这样我们就可以使用键盘直接输入、编辑Action Script(图3)。输入如下AS:


i=0;
//这段AS的含义是定义一个变量I,并赋值为0。
步骤4:
用鼠标选择第2帧,按下键盘F6键新建一个关键帧,使用上述方法输入如下AS:
if (i<30) {
duplicateMovieClip("ball", "ball" add i, i);
setProperty("ball" add i, _y, random(20)+100);
setProperty("ball" add i, _x, 200-random(400));
setProperty("ball" add i, _alpha, 30+random(70));
setProperty("ball" add i, _rotation, random(30));
} else {
i = 0;
}
//这段代码的含义是当变量I小于30时,复制实例名称为Ball的实例,并且利用随机函数指定复制出的实例的横坐标、纵坐标、透明度以及旋转角度。这样就可以表现出水泡随机运动的特点。
那么这些AS究竟该如何使用呢?下面我们就来学习一下它们的语法:
1.if{}else{}条件选择语句,检验条件并决定下一个将要执行的操作。如果条件为真,则执行if{}中的语句,为假则执行else{}。
2.duplicatemovieclip(target,newname,depth),当动画正在播放时复制一个movie clip。复制出的move clip与被复制的movie clip完全一样,并从第1帧开始播放。
target:要复制的movie clip的路径与名称
newname:复制出的movie clip唯一的名称
depth:景深
3.random(value)函数:random在ActionScript中是一个应用相当广泛的函数,它的作用是获取0到指定整数之间的任意整数。利用它,我们可以解决随机显示、随机移动等一系列效果,它是复杂动画的基础,是创造奇妙效果的前提。
value:所生成随机整数的上限
4.setProperty(target,property,expression),在movie clip播放时设置其属性。
target:要设置属性值的movie clip的路径与名称
property:待设置的属性
expression:待设置的属性值
步骤5:
用鼠标选择第10帧,按下键盘F6键新建一个关键帧,输入如下AS:
i = number(i)+1;
gotoAndPlay(2);
//这段AS 的含义是将I的数值加1后返回第2帧开始播放。
步骤6:
用鼠标选择Layer 1(即“水泡动画”所在的层)的第10帧,按下键盘上的F5键,建立帧,最后的时间轴如(图4)所示。

现在我么完成了“AS水泡动画”的制作,AS是Flash的核心内容,不可能在一个小小的实例中完全表现出它的强大功能。读者也不可能仅仅靠一个实例就完全掌握它,大家可以多多参考相关AS的资料,学好AS将使我们的Flash制作如虎添翼,不但能大大提高工作效率,而且可以实现很多常规手法无法实现的效果。
编后:本连载教程作品示范地址:http://qqflash.tencent.com/cgi-bin/qqflash/show.cgi?id=295