flash按钮中的八个事件有什么区别?
[摘自] http://www.flash8.net/
按钮中的八个事件有什么区别?
解决思路
在“影片控制”类的语句中还有一个与我们制做flash密切相关的on命令。这个命令是专门为按钮设计的,它提供了八种按钮的事件。分别是按下,滑过,释放,滑离,外部释放,拖过,拖离和按键。最后一种是定义键盘的事件。这八种时间在我们平时的制作中经常可以用到,每一种时间都有不同的效果,下面我们就结合事例给大家分析一下。
具体步骤
首先我们制作一个简单的移动渐变动画。为了直观地说明按钮的功能,我们在第1帧加入as:stop():。如图3.2.1.-11所示。
图3.2.1-11 制作一个简单的动画
然后我们新建一层制作一个按钮,或者【窗口】|【公用库】|【按钮】,打开公用库按钮面板,从里面选择一个按钮拖放到图层2的第1帧。如图3.2.1-12所示。
图3.2.1-12 拖放按钮到场景中
最后,也是非常重要的一点就是必须要在选中按钮的状态下,打开as面板。双击【动作】|【影片控制】中的on命令,右边会出现on的参数面板。如图3.2.1-13所示。
图3.2.1-13 on的参数面板
下面我们就详细地向大家介绍一下这八种事件的使用。
1, 按下:我们勾选“按下”框,然后选择动作语句,双击【动作】|【影片控制】中的play 命令。完成!
完整的action是:
on(press){ //设定鼠标事件为按下,然后执行大括号里面的语句。
play(); //按钮响应后执行play(播放)动作
}
当然,在大括号里面还可以用其他的语句,比如说,gotoAndPlay(yourframe); //点击按钮后,就会从你设置的帧播放。
我们参考源文件on----1.fla,体会一下它的效果。
2, 释放:这也是flash mx默认的按钮事件。我们勾选“释放”。与第一个事件相同加入play命令。完成的语句如下:on(release){ //当鼠标按下释放的时候,执行下面的语句动作。
play(); //按钮响应后执行play(播放)动作。
}
我们参考一下源文件on----2.fla,可以看到,当鼠标左键按下按钮的时候,并没有激发播放动作,而是当鼠标左键放开的时候,执行了播放动作。这也是与“按下”事件不同的地方。
3, 外部释放:添加语句的方法同上。完整的语句如下:
on (releaseOutside) { //当鼠标在按钮外部释放的时候执行下面的语句。
play(); //按钮响应后执行播放动作。
}
通过这个例子我们知道,当鼠标左键在按钮上按住并移动到按钮以外的地方放开后,触发了按钮的动作。这是一个具有非常想象力的事件,大家可以利用on的这个事件来制作游戏。
参看源文件on----3.fla。
4, 滑过:制作方法同上,完整的as语句为:
on(rollover){ //当鼠标滑动到按钮上时执行下面的动作。
play(); //按钮执行播放动作。
}
当鼠标从按钮上滑过的时候,动画就开始执行播放动作了,而不需要点击它。我们可以利用on的这个特点来制作一些图示板,非常简单有效。参看源文件on----4.fla。
5, 滑离:制作方法同上,完整的as语句为:
on(rollOut){ //当鼠标滑动到按钮上并离开时执行下面动作。
Play(): //按钮响应播放动作。
}
滑离与滑过并不是相同的,滑离是指鼠标滑动到按钮上并离开以后开始响应,而滑过是指只要鼠标滑到按钮上,就开始执行动作。参看源文件on----5.fla。
6,拖过:完整的as是:on(Drag Out){ //当鼠标拖过的时候执行下面的动作。
play(); //执行播放动作。
}
拖过的效果是在按钮上点击并按住鼠标不放,移出按扭区,再移回按钮上释放的事件。注意:此例中是一个文字按钮,在做文字按钮的时候,应在文字的下方用一透明方块,以增加按钮的反应区域,或者在按钮的第4帧绘制一个矩形来增加反映区。参看源文件on----6.fla。
7,拖离:完整的as是:on (dragOut) { //当鼠标拖离按钮时执行下面的动作。
play(); //执行播放动作
}
拖离与拖过有所不同,只要在按钮上按住鼠标左键然后移动到按钮外就会相应。他于滑离的区别在于拖离需要按住鼠标左键。我们可以参考一下源文件on----7.fla来体会一下。
1, 按键:我们勾选“按键”以后,右边的参数框就成可选状态。意思是利用键盘上面的按键来激发按钮执行动作。我们添入“k”。如图3.2.1-14所示。
图3.2.1-14 “按键”参数设置
完整地as语句为:on (keyPress "z") { //当按下键盘中的“z”健时执行下面的动作。
play(); //执行播放动作
}
参看源文件on----8.fla。
注 意 ——在给动画作品添加按钮的时候应该放到单独一层,这样便于修改。
提 示 ——on为按钮上的动作,所以我们必须首先要选中按钮,以后才可以添加on语句。有的朋友在论坛里面提问,“为什么我的on为灰色不可选状态?”原因就是你没有选中按钮。
技 巧 ——在一般flash作品中,大家不会有意区分这些on的功能的,一般采用默认的语句。如果没有特殊说明,你使用了拖离,滑离等事件来制作“replay”按钮,会让人们摸不着头脑的。
试一试 ——我们了解了on得这么多的功能,利用这些功能可以轻易的制作出flash课件,flash游戏里面的效果,大家不妨试一试。
分 析——on语句的功能与按钮息息相关,有按钮的地方一定会有on语句的使用。而有flash作品的地方,就会有按钮的出现,所以说on的重要作用不可忽视。今天向大家详细地介绍了on的各种功能,我们就可以结合按钮自身的特点,发挥他们的功能。
特别提示
on—1至on—8范例源文件中没有使用公用库中的按钮,目的在于让大家习惯自己制作按钮。按钮时一部完整的flash作品中不可缺少的部分,所以,同样需要我们来精心制作。
特别说明
这一节看起来内容比较多,但是知识比较容易掌握。例如on的八个事件中,一般经常使用释放,滑过的事情,而其它事件使用频率比较少。但如果我们制作课件或者游戏等作品还是会使用到的。
文字按钮的问题,我们在前一部分中已经讲过了。一定要注意文字按钮地反应区。
相关问题
1, 如何制作永远也碰不到的按钮?
我们通过on语句中的滑过事件,配合goto语句来完成这个效果。我们制作一个按钮,拖放到主场景中。复制四帧,并改变第2帧,第3针,第4帧,第5帧中按钮的位置。回到第1帧,在帧上加入stop,让动画在第1帧停止。
在第1帧的按钮中添加as:on (rollOver) { //当鼠标经过时执行下面的动作。
gotoAndStop(2); //转到并停止在第2帧。
}
在第2帧的按钮中添加as:on (rollOver) {
gotoAndStop(3);
}
在第3帧的按钮中添加as: on (rollOver) {
gotoAndStop(4);
}
第4帧的按钮中添加as: on (rollOver) {
gotoAndStop(5);
}
第5帧的按钮中添加as:on (rollOver) {
gotoAndStop(1);
}
这样我们在这五帧中形成了一个循环,依次跳转,所以你永远也点击不到这个按钮。
参看源文件on----9.fla。
2, 如何停止flash中的声音?
在“影片控制”中还有最后一个语句,就是stopAllSound。意思是关闭声音。下面这个flash事例就是利用stopAllSound制作的关闭音乐的按钮。这条语句没有参数,可以加到帧上或者按钮上。事例中的完整as为:on (release) { // 当按钮按下时执行下面语句。
stopAllSounds(); //停止所有声音
}
请参考源文件stopAllSound.fla。