文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Flash 事件侦听器基础学习资料

Flash 事件侦听器基础学习资料

时间:2010-09-23  来源:ayan2006

[转,存档] 动作脚本事件处理函数共有两类:事件处理函数方法和事件侦听器,要明白事件侦听器的概念,必须首先理解线性编程和事件驱动编程的区别
一 编程方法比较
(1)以时间为基础编程类似于观察一壶水是否被烧开,要想知道水是否被烧开了,需要不断的去进行观察,事实上过去我们的却是这样做的;
例如;影片剪辑man代表人,影片剪辑waterbottle代表水壶;变量temperature代表温度;当水温等于100度时人就可以把水拿走了;写成程序放在根时间轴第一帧上如下;
this.man.onEnterFrame=function   () {
if (waterbottle.temperature==100) {
   this.man.takewater();
} }
以上影片剪辑man不断的监视着影片剪辑waterbottle上的一个变temperature,当着个变量等于100时就可以把水拿走了;
(2)事件驱动编程;事件驱动编程的概念正好相反,过去的被监视者现在必须变成消息的发送者,现在的很多水壶都有一个峰鸣器,当水开了后会发出叫声,影片剪辑man不需要对水进行不断的监视了,只要峰鸣器(广播器)发出叫声(广播),监视者(侦听器)就可以收到那个广播,然后就去把水拿走;要使man可以收听waterbottle的叫声,必需把影片剪辑man注册成waterbottle事件的侦听对象;
//为广播器对象waterbottle注册一个侦听器对象man;
this.waterbottle.addListener(this.man);
这样当水开了后waterbottle就会向注册对象man发出通知--水开了;收到通知后影片剪辑man就去把水拿走;
//定义事件处理函数方法;
this.man.onwaterbottletemperature=function   (ss) {
this.man.takewater(ss);
}
二 事件侦听器模型
                    
单词含义;
    listenerObject//侦听器对象(收听者);
    broadcastObject//广播器对象(广播者);
标准模型
侦听器对象.事件名称=function(){...}
广播器对象.addListener(侦听器对象);
即;
listenerObject.eventName = function(){...};
broadcastObject.addListener(listenerObject);
说明
侦听器对象listenerObject可以是任何对象,例如舞台上的影片剪辑或按钮实例,或者可以是任何动作脚本类的实例。
eventName事件名称是在 broadCastObject 上发生的事件,然后将该事件广播到listenerObject。可以向一个事件广播器注册多个侦听器。
                                       
示例
//创建侦听器对象k;
k= new Object();
/*
为侦听器k构造事件处理函数,当收到了广播器对象Mouse发出的onMouseDown广播时,执行函数体;
主意;onMouseDown事件是在广播器对象Mouse上发生的,事件发生后广播器Mouse会把这个事件广播到侦听
器k上;
*/;
k.onMouseDown = function() {
_root.my_mc.stop();
};
//设置广播器对象;
//在广播器对象Mouse上注册侦听器对象k;用于接收 onMouseDown回调处理函数的通知。
Mouse.addListener(k);

示例
向一个广播器注册两个侦听器对象
//创建两个侦听器对象k1,k2;
k1= new Object();
k2= new Object();
/*
为侦听器k1,k2构造事件处理函数,当收到了广播器对象Mouse发出的onMouseDown和onMouseUp广播时,分别执行各自的函数体;主意;onMouseDown和onMouseUp事件是在广播器对象Mouse上发生的,事件发生后广播器Mouse会把这个事件广播到侦听器k1,k2上;
*/;
k1.onMouseDown = function() {
_root.my_mc.stop();
};
//...;
k2.onMouseUp = function() {
_root.my_mc.play();
}
//设置广播器对象;
//在广播器对象Mouse上注册侦听器对象k1;用于接收 onMouseDown回调处理函数的通知。
Mouse.addListener(k1);
//........;
Mouse.addListener(k2);
示例
影片剪辑作为广播器,为一个侦听器广播三个事件;
//构造一个侦听器对象;
obj=new Object();
obj.onMouseDown=function   () {
_root.mc.my_txt.text="鼠标按下";
}
obj.onMouseUp=function   () {
_root.mc.a="鼠标释放";
}
obj.onMouseMove=function   () {
_root.mc.a="鼠标移动";
  
}
onClipEvent (load) {
Mouse.addListener(this._parent.obj);
}
三 自定义侦听器
示例
在看看我们开始提到的例子;
现在的很多水壶都有一个峰鸣器,当水开了后会发出叫声,只要峰鸣器(广播器)发出叫声(广播),监视者(侦听器)就可以收到那个广播,然后就去把水拿走;要使man可以收听waterbottle的叫声,必需把影片剪辑man注册成waterbottle事件的侦听对象;
//创建对象水壶;
waterbottle = new Object();
//将对象waterbottle作为广播器;
AsBroadcaster.initialize(waterbottle);
//创建对象男人;
man = new Object();
//定义事件处理函数方法;
man.boiled_water = function(ss) {
trace(ss);
};
//注册man为侦听器;
waterbottle.addListener(man);
//水开后进行广播;
waterbottle.broadcastMessage("boiled_water", "我把水拿走了");
  http://hi.baidu.com/%B0%B5%BA%DA%B2%E0%CE%C0/blog/item/7c7134dc39f18ca6cc116622.html
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载