七彩课堂[FLASH动画教程系列]
flash关于按钮事件处理的三种方法
[学习目标]: 了解事件处理的三种方法,掌握on函数和事件函数的正确书写格式。
在上个教程上我们知道了按钮上的八大事件,其中常用的是前七个,对于keyPress事件我们会用专门的关于键盘操作给大家介绍,相信大家通过我给大家的演示例子应该掌握了鼠标的具体操作对应的前七个事件:press,release,releaseOutside,rollOver,rollOut,dragOver和dragOut。
理解了事件,我们就可以利用这些事件来完成我们的控制,让这些事件来触发我们要求的动画动作。有那些方法可以完成呢?共有3种方法,其中在我们上个教程上我们就利用了第一on()函数。
处理事件的三种方法是:
①针对对象的on()事件处理函数。
② 事件处理函数方法。
③ 事件侦听器。
下面我们详细的介绍针对按钮来说,这三种方法的实现。
一、针对按钮对象的on()事件处理函数
on()事件处理函数是最传统的事件处理方法。它直接作用于按钮元件实例,相关的程序代码要编写到按钮实例的动作脚本中。on()函数的一般形式为:
on(鼠标事件){
//此处是你的语句,这些语句组成的函数体来响应鼠标事件
}
上面()内的"鼠标事件"叫函数on的参数,具体可取值就是我们上面介绍的"八大事件"了。
下面我们做个例子:
要求:通过按钮控制主时间轴和影片剪辑的时间轴。
步骤:
1、新建flash文档,创建2个元件 fang,yuan,在元件fang上面画个方块,在元件yuan上画上圆。
2、新建元件move_mc,用元件yuan创建运动动画,并在第一关键桢加as: stop();
3、新建2个图层move1_mc,move2_mc。在图层move1_mc上拖入元件fang,在第20桢插入关键桢,创建运动动画。在图层move2_mc上拖入元件move_mc,并给这个实例个名称:move_mc。
4、新建图层ActionScript,在第一关键桢加as: stop();
5、新建2个图层move1_btn,move2_btn,分别从公共库中拖出2个按钮,图层move1_btn上放move1_btn控制主时间轴,加as:
on (press) {
play();
}
图层move2_btn上放move2_btn控制元件yuan的时间轴,加as:
on (press) {
move_mc.play();
}
注意:看上面的二个脚本不一样的呀,这个是截键。所以脚本放在on函数上,主要的问题是区别你控制的对象的层次,这个问题后面还要介绍的。
二、事件处理函数方法
事件处理函数方法是一种类方法,看到这里又有新概念了:类,没有什么,不明白跳过去。事件在该类的实例上发生时产生调用。例如,Button(按钮)类定义onPress事件处理函数,只要按下鼠标就对Button对象调用该处理函数。Flash Player在相应事件发生时自动调用事件处理函数。
默认情况下,事件处理函数方法是未定义的:在发生特定事件时,将调用其相应的事件处理函数,但应用程序不会进一步响应该事件。要让应用程序响应该事件,需要使用 function语句定义一个函数,然后将该函数分配给相应的事件处理函数。这样,只要发生该事件,就自动调用分配给该事件处理函数的函数。
事件处理函数由三部分组成:事件所应用的对象、对象的事件处理函数方法的名称和分配给事件处理函数的函数。
事件处理函数的基本结构为:
对象.事件处理函数方法名称 = function () {
// 你编写的程序代码,对事件作出反应
}
1、事件所应用的对象:就是具体的类的实例,在这里就是我们的按钮,我们用前给它取个名字。 2、对象的事件处理函数方法的名称:简单的说就是具体的方法。那什么是方法呢,就是可以做的事情。比如,王小妹是个款姐,你娶了她就可以买车、可以出国...,在这里王小妹就是个对象,买车、出国,就是方法,但你如果让王小妹去生个小鸡蛋是不可能的,因为它没有这个方法。你做的具体按钮是个对象,它也有自己的方法,就是按钮可以做的。共有"十大 函数",你结合我们前边介绍的"八大事件"去理解。
下面我列出这"十大 函数":
Button 类的事件处理函数:事件处理函数事件说明onDragOutdragOut当在按钮上按下鼠标按钮,然后将鼠标指针滑出按钮时调用。onDragOverdragOver当用户在按钮外部按下鼠标按钮,然后将鼠标指针拖动到按钮之上时调用。onKeyUpkeyPress结合键盘当释放按键时调用onKillFocus结合键盘当从按钮移除焦点时调用onPresspress在鼠标指针位于按钮上方的情况下,按下鼠标按钮时调用onReleaserelease在鼠标指针位于按钮上方的情况下,释放鼠标按钮时调用。onReleaseOutsidereleaseOutside在鼠标指针位于按钮内部的情况下按下按钮,然后将鼠标指针移到该按钮外部并释放鼠标按钮。onRollOutrollOut当鼠标指针滚动到按钮区域之外时调用onRollOverrollOver当鼠标指针滚过按钮时调用。onSetFocus结合键盘当按钮具有输入焦点而且释放某按键时调用。
比较上节的内容是否很相似?就是多了2个onSetFocus,onKillFocus这个在键盘操作时很有用的。 3、分配给事件处理函数的函数 这个部分就是我们自己写代码的地方了。对上面的例子我们按现在的方法去写: 步骤: 1、新建flash文档,创建2个元件 fang,yuan,在元件fang上面画个方块,在元件yuan上画上圆。 2、新建元件move_mc,用元件yuan创建运动动画,并在第一关键桢加as: stop(); 3、新建2个图层move1_mc,move2_mc。在图层move1_mc上拖入元件fang,在第20桢插入关键桢,创建运动动画。在图层move2_mc上拖入元件move_mc,并给这个实例个名称:move_mc。 4、新建2个图层move1_btn,move2_btn,分别从公共库中拖出2个按钮,图层move1_btn上放按钮move1_btn,图层move2_btn上放按钮move2_btn。 5、新建图层ActionScript,在第一关键桢加as:
stop();
move1_btn.onPress = function() {
play();
};
move2_btn.onPress = function() {
move_mc.play();
};
效果是不是一样的?看还是这样方便吧?就在主时间轴加as:),格式记不住,你死套就可以了。
 
信息推荐
资讯中心 | 电子商务 | 搜索营销 | 设计学院 | 中医养生 | 养生保健 | 节日祝福 | 民俗文化 | 奇闻趣事
建站知识 | 人世百态 | 网站导航 | 传统节日 | 搜索热点 | 星座运势 | 趣闻轶事 | 祝福的话 | 短信大全
© 2023 QicaiSpace.Com