凡是看过Flash作品的朋友,都会为它绚丽多彩的交互动画所倾倒。交互功能使Flash不仅仅局限于演示型的动画设计,而更使之成为强大的交互程序设计平台。
在利用Flash设计交互程序时,事件是其中最基础的一个概念。所谓事件,就是软件或者硬件发生的事情,它需要应用程序有一定的响应。
下面我们先从运行一个简单的程序实例,初步了解一下事件和事件处理的概念。请你从配套光盘上运行“按钮控制小球跳动.swf”文件(文件路径:配套光盘/……)。可以得到如图6-3-1所示的画面。
图6-3-1 实例效果
可以看到,一个小球在不停地跳动。现在你单击画面右上角的停止按钮,那么小球马上停止跳动。上面的操作过程就蕴含了事件和事件处理的概念。用鼠标单击停止按钮,就是一个事件,当这个事件发生时,马上有程序对它进行响应(程序控制小球停止跳动)。这时如果再单击播放按钮(又一个鼠标事件发生),则小球又开始跳动(相应的事件响应程序控制小球跳动)。
现在你对事件和事件处理的概念有所了解了吧?光有简单的了解还不行,本节我们要通过对按钮对象的事件和事件处理函数的详细分析,全面掌握Flash程序设计中事件和事件处理函数的应用。
1.事件分类及处理事件的方法
Flash中的事件包括用户事件和系统事件两类。用户事件是指用户直接交互操作而产生的事件。例如鼠标单击或按下键盘键之类的事件。系统事件是指Flash Player自动生成的事件,它不是由用户直接生成的。例如影片剪辑在舞台上第一次出现或播放头经过某个关键帧。一般情况下,在以下几种情况下会产生事件:
u 当在时间轴上播放到某一帧时。
u 当某个影片剪辑载入或卸载时。
u 当单击某个按钮或按下键盘上的某个键时。
为使应用程序能够对事件做出反应,必须编写相应的事件处理程序。事件处理程序是与特定对象和事件关联的动作脚本代码。例如,当用户单击舞台上的一个按钮时,可以将播放头前进到下一帧。
Flash MX 2004提供了三种编写事件处理程序的方法:
u 针对对象的on()事件处理函数
u 事件处理函数方法
u 事件侦听器
下面我们就以按钮对象的事件为例,讨论这三种编写事件处理程序方法的应用。
2.针对按钮对象的on()事件处理函数
on()事件处理函数是最传统的事件处理方法。它直接作用于按钮元件实例,相关的程序代码要编写到按钮实例的动作脚本中。on()函数的一般形式为:
on(
鼠标事件){
//此处是你的语句,这些语句组成的函数体来响应鼠标事件
}
其中鼠标事件是“事件”触发器,当发生此事件时,
执行事件后面大括号中的语句。比如press就是一个常用的鼠标事件,它是在鼠标指针经过按钮时按下鼠标按钮时产生的事件。
下面我们就以本节开始运行的那个动画为例,讨论一下on()事件处理函数的具体应用方法。
(1)打开小球跳动动画文件
在Flash MX 2004中,将配套光盘上的“小球跳动.fla”影片文件(文件路径:配套光盘/……/小球跳动.fla)打开。我们以这个影片文件为基础编写按钮交互程序,来控制小球动画的播放。
我们可以先按快捷键Ctrl+Enter,对动画进行测试,观察一下动画效果。在测试窗口中可以观察到,小球在舞台上一直循环不停地跳动。下面我们就引用两个按钮实例,用按钮来控制这个小球动画的播放。
(2)引用按钮实例
新建一个图层,把它重新命名为“按钮”。从【库】面板拖放两个按钮实例到舞台的右上角,如图6-3-2所示。
图6-3-2 引用按钮
说明:上面引用的按钮是事先制作的。有关按钮制作的详细内容请参阅第四章的相关内容。