第十节 使用ActionScript编辑动画
ActionScript语言是Flash的动作脚本语言,也是Flash中的高级动画技巧,使用它可以制作各种交互式动画,也可以很轻松地做出绚丽的Flash特效。随着Flash CS3的推出,它同时也带来了全新的动作脚本语言——ActionScript 3.0。
一、ActionScript简介
ActionScript是Flash与程序进行通信的方式。用户可以通过它告诉Flash将要执行的任务,并询问在影片运行时发生了什么。这种双向的通信方式,使得用户可以创建具有交互功能的影片,也使得Flash能优于其他动画制作软件。ActionScript与其他脚本语言一样,都遵循特定的语法规则、保留关键字、提供运算符,并且允许使用变量存储和获取信息,而且还包含内置的对象和函数,允许用户创建自己的对象和函数。
(一)ActionScript 3.0的特点
Flash CS3的推出,也为用户带来了最新的ActionScript语言ActionScript 3.0,与之前采用AVM1虚拟机的ActionScript 1.0或者ActionScript 2.0相比,采用AVM2虚拟机的ActionScript 3.0在编程功能上有了进一步的优化,其操作细节上的完善使动画制作者的编程工作更加得心应手;另外,ActionScript 3.0的代码执行速度有了显著提高,较之前版本几乎快了10倍。
(二)ActionScript的语法
ActionScript语法是ActionScript编程中最重要环节之一,它相对于其他的一些专业程序语言来说较为简单。ActionScript动作脚本具有语法和标点规则,这些规则可以确定哪些字符和单词能够用来创建程序及编写它们的顺序。例如在ActionScript语法中,分号通常用于结束一个语句。
(三)ActionScript的数据类型
数据类型用于描述变量或动作脚本元素可以存储的数据信息。在Flash中包括两种数据类型,即原始数据类型和引用数据类型。原始数据类型包括字符串、数字和布尔值,都有一个常数值,因此可以包含它们所代表的元素的实际值;引用数据类型是指影片剪辑和对象,值可能发生更改,因此它们包含对该元素实际值的引用。此外,在Flash中还包含有两种特殊的数据类型,即空值和未定义。
(四)ActionScript的变量
变量是动作脚本中可以变化的量。通过在影片播放过程中更改变量的值,可以记录和保存用户的操作信息、记录影片播放时更改的值或评估某个条件是否成立等。在首次定义变量时最好对变量进行初始化操作,为其指定一个初始值。初始化变量有助于用户在播放影片时跟踪和比较变量值。通常,在使用变量之前,要先指定变量存储数据的数据类型,该类型值将对变量的值产生影响。
(五)ActionScript的运算符
ActionScript中的表达式都是通过运算符连接变量和数值的。运算符是在进行动作脚本编程过程中经常会用到的元素,使用它可以连接、比较、修改已经定义的数值。表8-1所示为ActionScript语法中的几种常用运算符。
表8-1 常用的运算符
二、ActionScript脚本的输入
在ActionScript 3.0环境下,按钮或影片剪辑不再可以被直接添加代码,用户只能将代码输入在时间轴上,或者将代码输入在外部类文件中。
(一)在时间轴上输入代码
在Flash CS3中,用户可以在时间轴上的任何一帧中添加代码,包括主时间轴和影片剪辑的时间轴中的任何帧。输入时间轴的代码,在播放头进入该帧时将被执行。时间轴的【动作】面板如图8-69所示,①—【动作】工具箱;②—对象窗口;③—工具栏;④—动作编辑窗口。
图8-70 【动作】面板
(二)在外部ActionScript文件中添加代码
当用户需要组建较大的应用程序或者包括重要的代码时,就可以创建单独的外部ActionScript类文件(见图8-71)并在其中组织代码,如图8-72所示。
图8-71 新建ActionScript文件
图8-72 脚本文档编辑窗口
三、处理对象
ActionScript 3.0是一种面向对象的编程语言,面向对象的编程仅仅是一种编程方法,它与使用对象来组织程序中的代码的方法并没有差别。
(一)属性
属性是对象的基本特性,如影片剪辑元件的位置、大小、透明度等。它表示某个对象中绑定在一起的若干数据块的一个。如MovieClip类具有rotation(旋转)、x(x轴坐标)、width(宽度)、alpha(透明度)等属性。以下的代码行中的“//”为注释符,其后的文字为注释语句,起到辅助说明的作用,语句运行时会自动将其忽略:mc1.x=100; //将名为mc1的影片剪辑移动到100个像素的x坐标处
mc2.scaleX=2.5; //将名为mc2的影片剪辑的宽度变为原始宽度的2.5倍
(二)方法
方法是指可以由对象执行的操作。如果在Flash中使用时间轴上的几个关键帧和动画制作了一个影片剪辑元件,则可以播放或停止该影片剪辑,或者指示它将播放头移动到特定的帧,例如:
star.play(); //指示名为star的影片剪辑开始播放
star.gotoAndStop(1); //将名为star的影片剪辑的播放头移到第1帧并停止播放
(三)事件
事件用于确定执行哪些指令以及何时执行。事实上,事件就是指所发生的、ActionScript能够识别并可响应的事情。许多事件与用户交互动作有关,如用户单击按钮或按下键盘上的键等。
(四)创建对象实例
在ActionScript中使用对象之前,必须确保该对象的存在。创建对象的一个步骤就是声明变量,我们已经学会了其操作方法。但仅声明变量,只表示在电脑内创建了一个空位置,所以需要为变量赋一个实际的值,这样的整个过程就称为对象的“实例化”。除了在ActionScript中声明变量时赋值之外,用户也可以在【属性】面板中为对象指定对象实例名。
四、认识常用的语句
ActionScript语句就是动作或者命令,动作可以相互独立地运行,也可以在一个动作内使用另一个动作,从而达到嵌套效果,使动作之间可以相互影响。条件判断语句及循环控制语句是制作Flash动画时较常用到的两种语句,使用它们可以控制动画的进行,从而达到与用户交互的效果。
(一)条件语句
条件语句用于决定在什么情况下执行命令,或者针对不同的条件执行具体操作。ActionScript 3.0提供了3个基本条件语句。即if...else条件语句、if...else if 条件语句和switch 语句。下面以if...else为例进行说明。
if...else 条件语句用于测试一个条件,如果该条件满足,则执行一个代码块,否则执行另一个代码块。如下面的例子:
if (x〉20)
如果不想执行替代代码块,可以仅使用if语句,而不用else语句。
(二)循环语句
循环类动作主要控制一个动作重复执行的次数,或者在特定的条件成立时重复执行的动作。在Flash CS3中可以使用while、do...while、for、for...in和for each...in 动作创建循环。下面以for为例进行说明。
for循环用于循环访问某个变量以获得特定范围的值。必须在for语句中提供3个表达式:一个设置了初始值的变量,一个用于确定循环何时结束的条件语句,以及一个在每次循环中都更改变量值的表达式。如下面的例子:
思考题与上机练习
1. 如何在时间轴中添加ActionScript语句?
2. 如何创建单独的ActionScript文件?
本章核心概念
元件、库、帧、图层、引导动画、遮罩动画。
本章小结
1. 本章介绍了Flash软件的基础知识,重点讲述了实用知识和技能。
2. 从实际操作的角度介绍了Flash动画制作的流程和技巧,并在各节配有练习。
3. 本章的概念和知识都是网页制作和网络广告中常用到的,是一定要熟练掌握的内容。
思考题
由于本章篇幅较大,思考题安排在本章各节之后,便于对应查找。
上机练习
由于本章篇幅较大,上机练习安排在本章各节之后,便于对应查找练习。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。