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语句,希望这个分析过程对您有所帮助。