ActionScript在Flash课件中的应用

Flash以其强大的动画功能而越来越受到老师们的喜爱，Flash5.0中新增的几百条ActionScript语句则更增强了Flash的功能。ActionScript是Flash5.0的内部语言，它可以把各种从简单到复杂的交互添加到电影中，建立好交互后，通过捕获用户的事件来控制电影中动作的执行。

面对几百条ActionScript命令，您可能会感觉有些力不从心，但别担心，有时一个相当简单的脚本就可以满足您的需要。下面把我在用Flash制作课件时用到的一些ActionScript的具体实例作一详细介绍，希望对您有帮助。

交互响应
本例是一个拼图的课件，拖动当前图形到适当的位置，如果位置放置正确则不退回原图形（如图1），并提示：“对了，你真棒。”；如果位置放置错误则退回原图形，并提示：“错啦，再好好想一想”。具体的ActionScript语句如图2所示，下面我就按语句的功能逐句作分析说明：

图1

图2

1、onClipEvent(MouseDown)
这条语句用于检测鼠标是否按下，如果按下鼠标键，则程序响应。

2、a1=this._x
b1=this._y
用来把当前影片的x、y坐标保存到变量a1、b1中，当影片拖动到不正确的位置时，再把a1、b1变量的值赋予影片的x、y坐标，使其回到初始位置。

3、if（this.hitTest(_root._xmouse,_root._ymouse,false)）
if函数用来检测括号内的表达式的真和假，为真时执行函数体，否则不执行。在这里使用hitTest方法来检测影片是否与鼠标发生碰撞，其语句的格式如下：movieClip.hitTest(target)，程序通过hitTest和if的合用来完成整个拖动过程的检测。

4、startDrag("")
拖动语句，如没有参数，表示拖动的是影片本身。

5、onClipEvent(mouseUp)
用于影片检测，如果鼠标键没有按下去时则响应。

6、stopDrag()
停止拖动影片。

7、if(this.hitTest(_root.window.jc))
检测当前影片是否与_root.window.jc影片发生碰撞，这里的_root.window.jc指的是根影片里的window影片里的jc影片。在用hitTest方法进行检测的时候，应注意把影片所属的父影片名写清楚，否则会因为找不到影片的位置而发生错误响应。

8、this._x=256
this._y=172
当影片拖动到的位置正确时，把准确的位置赋予影片的x、y坐标，并使其不能被移动。

9、s=new Sound()
_root.s.attachSound("dui")
_root.s.start()
创建一个声音对象s，把声音元素“dui”（注意：这里的dui是通过符号输出来实现的，如图3所示）捆绑在对象s中，然后通过_root.s.start()语句进行播放。

图3

10、else if(this._x==a1&&&&this._y==b1){
stop()
}else{
this._x=a1
this._y=b1
s=new Sound()
_root.s.attachSound("cuo")
_root.s.start()}
如果影片的位置没有发生变化，则停止操作。这时还剩下一种情况：当影片拖动到的位置发生错误时，就把原先的变量a1、b1赋予影片x、y坐标，使影片回到初始位置。

通过上面的一段ActionScript语句就很方便地实现了一种交互响应。

颜色设置
下面我们通过填色程序来了解一下ActionScript语句中颜色的设置。

例如我们在上数学课的时候，要给特定的图形涂上颜色，预先的三个正方形都是白色的，当你分别点击这三个正方形以后，三个正方形分别被填充了三种不同的颜色。具体的ActionScript语句如图4，简要地讲述一下其语句的功能。

图4

1、onClipEvent(mouseDown)
鼠标键按下时响应。

2、if(this.hitTest(_root._xmouse,_root._ymouse,false))
检测鼠标与影片的位置是否一致。

3、a=new color(this)
创建一个颜色对象a，参数 this表示对象本身。

4、a.setRGB(0xff5500)
设置对象的RGB颜色值为0xff5500

以上两点是我在用Flash做课件时用到的一些ActionScript语句，希望这个分析过程对您有所帮助。