从Flash 3开始,ActionScript 就开始出现,当时的ActionScript还非常简陋,功能也仅仅局限于控制动画的播放等动作。
等到Flash 4的推出,ActionScript的功能被进一步完善。基本实现了相应各种事件、控制动画行为、和后台交换数据的功能。但是其编程风格仍停留在面向过程的阶段,尽管也有对象的概念,但是非常模糊。
在Flash 5中,ActionScript 出现了翻天覆地的变化,基本语法都经过了改写,有点和JavaScript类似,风格也从面向过程转变到了面向对象,提供了自定义的函数以及新增了强大的数学函数、颜色、声音以及XML等对象的支持。使得编程更加得心应手,能够做出更多酷炫的效果,和用户的交互也得到了进一步的提高。
Flash MX推出之后,它的ActionScript以Flash 5的ActionScript为基础,整个语法体系以及编程风格、界面都没有做很大的改动,只是在某些函数、对象的实现上做了扩充,新增了一些方法,提供了更为强大的对象支持。
Flash MX ActionScript 具有以下特点:
(1)ActionScript能够控制Flash动画的播放行为和对象的属性。根据用户的动作来做出响应,并在动画中体现出来。根据载体的不同,Flash ActionScript可以分为两类。一类是放在Frame帧中的ActionScript,主要是做一些计算以及控制动画的播放行为;另一类是放在Button按钮或Movie Clip中的ActionScript,其主要功能是响应用户的事件,当然在响应用户事件后也会进行一些计算或是控制动画的播放。ActionScript更能控制动画中的每一个对象的各种属性的变化,例如长宽、旋转角度、颜色、大小等。
(2)Flash MX ActionScript 是一种面向对象的编程语言,它的风格和JavaScript语言相类似。程序由多行语句构成,每行语句又都是由一些指令、变量、运算符以及结尾的分号组成。它拥有循环、判断、对象事件等高级语言的特性。
(3)Flash MX ActionScript可以使用自定义函数。如果有一个功能要经常使用,则可以把它写成自定义函数,在用到的时候调用它。从Flash 5开始,ActionScript就支持自定义函数,而不用像Flash 4那样,把程序写在一个空白帧中,然后用Call语句去调用了。
(4)支持XML和XMLSocket。除了通过getURL()和loadVariablesNum等几种由Flash 4提供的方法和后台程序实现交互外,ActionScript更提供了XML和XMLSocket对象来和后台程序进行交互。任何基于XML标准开发的程序都能和Flash相结合,通过XML对象,Flash可以发送或获取XML资料并对XML资料进行分析,借此达到交换数据的目的。Flash MX对XML的支持在Flash 5的基础上又做了进一步的扩充。
在这一小节中要介绍ActionScript中的一些基本编程元素,了解了这些才能学好ActionScript。
(1)对象。对象是一个非常重要的概念。从Flash 5开始,ActionScript就是面向对象的程序语言了,所以,对象对于ActionScript来说,是最为重要的概念,一切都基于对象,一切都离不开对象。在ActionScript中,对象分为两类,一类是用户自己制作的动画元件(Symbol)实例化后而形成的实体对象(Instance Object),声明这类对象后,可以在ActionScript堆砌的属性和动作行为进行控制;另一类是Flash MX自己定义的抽象对象(Abstract Object),例如Math, Date等,这类对象主要用于计算。
(2)点运算符。通过点运算符,可以访问一个对象的属性(Property)或是方法(Method)。例如,一个对象名叫myObject,它有一个myProperty属性和myMethod()方法,可以通过myObject.myProperty和myObject.myMethod()来分别访问它们。
(3)数据类型以及变量。在Flash MX ActionScript中,提供了丰富的数据类型,从整数、字符、布尔值到各种对象甚至MovieClip都是不同的数据类型。在变量方面,ActionScript允许声明全局变量和局部变量。所谓全局变量,也就是声明一次,在整个动画的ActionScript程序都可以使用的变量;所谓局部变量,就是在函数中声明,只能在函数中被使用的局部性的变量。
(4)事件响应。在Flash动画中,动画的交互性就是通过对用户动作的响应来完成的。在ActionScript中,用户的事件有鼠标事件、键盘事件等,诸如鼠标的移动、按钮的按下和松开、拖动以及键盘上的按键被按下等都属于用户事件的范畴。ActionScript可以通过On()方法来进行响应。
(5)语句和运算符。Flash MX ActionScript的语法风格和JavaScript的非常类似,同样有判断、循环等控制流程的语句,同时还提供了丰富的运算符号。当然多条语句组成的一个常用的功能可以被封装成一个自定义函数。这些都使得ActionScript更易于使用。
熟练地使用好这些编程元素,就可以编写出强大的ActionScript脚本,使Flash动画拥有良好的交互性。
在Flash中要使用ActionScript有两种方式,一种是直接在Flash中写入ActionScript程序段,另一种是在Flash中包含引入*.as文件(脚本文件)。
要在Flash中写入ActionScript程序,就要在Actions面板(Action Panel)中进行编辑。前面说过,Flash中的ActionScript按载体的不同可以分为两大类,一类在帧(Frame)上,另一类是在按钮(Button Symbol)中。所以,在编辑这两类不同的ActionScript脚本时,打开Actions面板方法也略有不同。
编辑加载于帧(Frame)中的ActionScript时,在Timeline中要加载的那一帧上单击鼠标右键,在弹出的菜单(如图1-1所示)上选择Actions命令,就会弹出ActionScript的编辑面板。
如果要编辑按钮的ActionScript,则只要在按钮上单击右键,如图1-2所示,同样选择Actions,就会弹出编辑该按钮的ActionScript的Actions 面板。

图1-1 图1-2
下面就来看看如何使用Actions面板来编辑ActionScript代码。
图1-3是Actions面板。可以在图中看到,整个面板被分成左右两大部分。在面板的最上方,是一个下拉菜单,在这里,可以选择要编辑的ActionScript代码是属于哪一个物体的,例如,哪一帧或哪一个按钮。在图1-3的例子中,将要编辑的ActionScript是属于Symbol 1这个按钮的。下拉菜单的下面,就是分为左右两大部分的脚本编辑窗口。左面是ActionScript语句选择区,右面是ActionScript代码编辑区。可以看到,在左面的语句选择区中,各种ActionScript中的语句、运算符、对象等都被分门别类地以树状的格式排好,这样,在编辑ActionScript代码的时候,用户就能根据需要很快找到合适的语句或对象。在使用的时候,可能因为编辑区的代码行较长,需要频繁横向翻动才能够显示全部的代码,这时候,可以用语句选择区右侧的
按钮来控制显示或隐藏选择区,来扩大编辑区的显示范围。

图1-3
在右侧的编辑区下方是一个文本框,这是编辑ActionScript的主要场所。除了这个文本框,编辑区里还有许多按钮。在按钮之上的一块灰色区域是参数设置区,选中一行代码后,可以在这里设定一些ActionScript函数的参数。下面将一一介绍代码编辑区内的各按钮的功能:
在了解了这些按钮的功用之后,可以发现,ActionScript虽然只是Flash内部使用的脚本语言,但是从编辑到调试,功能十分完善,而且编辑界面十分友好,帮助也十分齐全。