计算机基础与实训教材系列《中文版FlashCS3动画制作实用教程》第十章使用ActionScript编辑动画学习目标ActionScript语言是Flash的动作脚本语言,也是Flash中的高级技巧,使用它可以制作各种交互式动画,也可以很轻松地做出绚丽的Flash特效。随着FlashCS3的推出,它同时也带来了全新的动作脚本语言——ActionScript3.0。本章重点了解ActionScript3.0的特点及其常用元素掌握ActionScript的输入掌握对象的处理方法掌握条件语句的使用掌握循环语句的使用掌握类的编写与调用方法10.1ActionScript3.0概述ActionScript是Flash与程序进行通信的方式。用户可以通过它告诉Flash将要执行的任务,并询问在影片运行时发生了什么。这种双向的通信方式,使得用户可以创建具有交互功能的影片,也使得Flash能优于其他动画制作软件。ActionScript与其他脚本语言一样,都遵循特定的语法规则、保留关键字、提供运算符,并且允许使用变量存储和获取信息,而且还包含内置的对象和函数,允许用户创建自己的对象和函数。ActionScript3.0的特点ActionScript的常用概念ActionScript的语法ActionScript的数据类型ActionScript的变量ActionScript的函数ActionScript的运算符10.1.1ActionScript3.0的特点随着FlashCS3的推出,也为用户带来了最新的ActionScript语言ActionScript3.0,与之前采用AVM1虚拟机的ActionScript1.0或者ActionScript2.0相比,采用AVM2虚拟机的ActionScript3.0在编程功能上有了进一步的优化,其操作细节上的完善使动画制作者的编程工作更加得心应手;另外,ActionScript3.0的代码执行速度有了显著提高,较之前版本几乎快了10倍。10.1.2ActionScript的常用概念在ActionScript动作脚本中包含了动作、运算符、对象等多种元素,可以将这些元素组织到动作脚本中,然后指定要执行的操作。10.1.3ActionScript的语法ActionScript语法是ActionScript编程中最重要环节之一,它相对于其他的一些专业程序语言来说较为简单。ActionScript动作脚本具有语法和标点规则,这些规则可以确定哪些字符和单词能够用来创建含义及编写它们的顺序。例如在ActionScript语法中,分号通常用于结束一个语句。10.1.4ActionScript数据类型数据类型用于描述变量或动作脚本元素可以存储的数据信息。在Flash中包括两种数据类型,即原始数据类型和引用数据类型。原始数据类型包括字符串、数字和布尔值,都有一个常数值,因此可以包含它们所代表的元素的实际值;引用数据类型是指影片剪辑和对象,值可能发生更改,因此它们包含对该元素实际值的引用。此外,在Flash中还包含有两种特殊的数据类型,即空值和未定义。10.1.5ActionScript的变量变量是动作脚本中可以变化的量。通过在影片播放过程中更改变量的值,可以记录和保存用户的操作信息、记录影片播放时更改的值或评估某个条件是否成立等。在首次定义变量时最好对变量进行初始化操作,为其指定一个初始值。初始化变量有助于用户在播放影片时跟踪和比较变量值。通常在使用变量之前,要先指定变量存储数据的数据类型,该类型值将对变量的值产生影响,变量主要有4种数据类型。10.1.6ActionScript的函数在ActionScript中,函数使一个动作脚本的代码块,可以在任何位置重新使用,就减少了代码量,从而提供工作效率,同时也可以减少手动输入代码时引起的错误。在Flash中可以直接调用已有的内置函数,也可以创建自定义函数,然后进行调用。将值作为参数传递给函数,它将对这些值进行操作。函数常用于复杂和交互性较强的动作制作中。10.1.7ActionScript的运算符ActionScript中的表达式都是通过运算符连接变量和数值的。运算符是在进行动作脚本编程过程中经常会用到的元素,使用它可以连接、比较、修改已经定义的数值。表10-6所示为ActionScript语法中的几种常用运算符的含义。10.2ActionScript的输入在ActionScript3.0环境下,按钮或影片剪辑不再可以被直接添加代码,用户只能将代码输入在时间轴上,或者将代码输入在外部类文件中。在时间轴上输入代码在外部AS文件中添加代码10.2.1在时间轴上输入代码在FlashCS3中,用户可以在时间轴上的任何一帧中添加代码,包括主时间轴和影片剪辑的时间轴中的任何帧。输入时间轴的代码,将在播放头进入该帧时被执行。10.2.2在外部AS文件中添加代码当用户需要组件较大的应用程序或者包括重要的代码时,就可以创建单独的外部AS类文件并在其中组织代码。10.3处理对象ActionScript3.0是一种面向对象(OPP)的编程语言,面向对象的编程仅仅是一种编程方法,它与使用对象来组织程序中的代码的方法并没有差别属性方法事件创建对象实例10.3.1属性属性是对象的基本特性,如影片剪辑元件的位置、大小、透明度等。它表示某个对象中绑定在一起的若干数据块的一个。10.3.2方法方法是指可以由对象执行的操作。如果在Flash中使用时间轴上的几个关键帧和基本动画制作了一个影片剪辑元件,则可以播放或停止该影片剪辑,或者指示它将播放头移动到特定的帧。10.3.3事件事件用于确定执行哪些指令以及何时执行的机制。事实上,事件就是指所发生的、ActionScript能够识别并可响应的事情。许多事件与用户交互动作有关,如用户单击按钮或按下键盘上的键等操作。10.3.4创建对象实例在ActionScript中使用对象之前,必须确保该对象的存在。创建对象的一个步骤就是声明变量,我们已经学会了其操作方法。但仅声明变量,只表示在电脑内创建了一个空位置,所以需要为变量赋一个实际的值,这样的整个过程就成为对象的“实例化”。除了在ActionScript中声明变量时赋值之外,其实用户也可以在【属性】面板中为对象指定对象实例名。10.4认识常用语句ActionScript语句就是动作或者命令,动作可以相互独立地运行,也可以在一个动作内使用另一个动作,从而达到嵌套效果,使动作之间可以相互影响。条件判断语句及循环控制语句是制作Flash动画时较常用到的两种语句,使用它们可以控制动画的进行,从而达到与用户交互的效果。条件判断语句循环控制语句10.4.1条件判断语句条件语句用于决定在特定情况下才执行命令,或者针对不同的条件执行具体操作。ActionScript3.0提供了3个基本条件语句。即if..else条件语句、if..elseif条件语句和switch语句。10.4.2循环控制语句循环类动作主要控制一个动作重复的次数,或是在特定的条件成立时重复动作。在FlashCS3中可以使用while、do…while、for、for…in和foreach…in动作创建循环。10.5编写类ActionScript3.0中的类种类繁多,本节重点介绍几个常用的类,通过实例使用户熟悉编写类以及外部AS文件的方法,以及掌握类的使用方法。include类元件类动态类10.5.1include类了解ActionScript1.0或者2.0编程的用户,对于include一定不陌生,在ActionScript3.0中,使用Include指令依然可以用来导入代码。10.5.2元件类元件类的作用实际上是为Flash动画中的元件指定一个链接类名,它与之前介绍的Include类的不同之处在于,元件类使用的类结构要更为严格,且有别于通常的在时间轴上书写代码的方式。10.5.3动态类在制作一些比较复杂的程序时,往往需要由主类和多个辅助类组合而成。其中主类用于显示和集成各部分功能,辅助类则封装分割开的功能。10.6上机练习ActionScript3.0是一种全新的编程语言,为了使Flash的脚本编写更加规范,ActionScript3.0与之前版本的脚本编写模式的差别是比较明显的。譬如,以前用户在ActionScript2.0中常常使用loadMovie或attachMovie这样的布局加载方式加载影片,但这种方法在ActionScript3.0中已不再适用,按钮与影片剪辑元件也不再可以被直接添加代码。