快速业务通道

FlashMX2004的事件机制

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-08
--------------------------------------------------------------
trace("司令部指示:");
var eventObj1 = new Object();
//定义事件对象eventObj1
eventObj1.target = 司令部;
//定义事件对象eventObj1的target属性值为司令部
eventObj1.type = "on进攻";
//定义事件对象的事件类型为’on进攻’
eventObj1.阵地="505阵地"
//一个自定义的属性’阵地’,你可以附加更多其他的属性
司令部.dispatchEvent(eventObj1);
//司令部将定义好的事件对象广播出去,只有向它注册了’on进攻’属性的监听对象才能收到。步兵并不会发动进攻。
trace("战地指挥部指示:");
var eventObj2=new Object();
//eventObj2.target=战地指挥部;
//因为dispatchEvent方法会自动将事件对象的target属性设为默认的广播消息的对象,所以这句也可以注释掉。
eventObj2.type = "on进攻";
eventObj2.阵地="105阵地"
战地指挥部.dispatchEvent(eventObj2);
trace("传达司令部指示:");
var eventObj3=new Object();
eventObj3.target=战地指挥部;
//这里必须设定事件对象的target属性。因为dispatchQueue不会为target属性设定默认值
eventObj3.type="on冲锋";
eventObj3.阵地="123阵地";
司令部.dispatchQueue(战地指挥部,eventObj3);
//战争时期也许司令部并不知道前线部队的布置情况,所以它可以将指令传达给战地指挥部,由战地指挥部将事件对象广播给向自己的相关事件注册的监听对象
-----EventDispatcher测试.fla 结束-----
具体的测试结果我就不贴出来了。最后说说EventDispatcher类的几个有趣的地方:
1、监听事件的对象可以是Object、MovieClip,还可以是Function.例如:
假设在战场上每当发起冲锋时,都要呐喊助威,可以这样写:

function 鼓励士气(){
trace("冲啊!杀啊!");
}
战地指挥部.addEventListener("on冲锋",鼓励士气);
2、当监听事件的对象是自身时,一般的写法是这样的:

战地指挥部.on冲锋=function(){
trace("同志们,我们一定会取得最后的胜利!");
}
战地指挥部.addEventListener("on冲锋",战地指挥部);
但是还有一种更简洁的写法:
战地指挥部.on冲锋Handler=function(){
trace("同志们,我们一定会取得最后的胜利!");
}
这种写法不再需要用"addEventListener"来注册了。它有两点需要注意,一是它总在其他监听对象的事件处理之前执行,再就是它无法用''removeEventListener''方法注销监听。
3、监听对象的事件处理程序也可以这样写:

步兵.handlerEvent=function(eventObj){
var 来自=eventObj.target.名称;
var 阵地=eventObj.阵地;
var e=eventObj.type;
switch(e){
case "on进攻":
trace("步兵接到"+来自+"来电,轻装上阵,火速向敌方"+阵地+"前进!");
break;
case "on驻守":
trace("步兵接到"+来自+"来电,就地待命,多设岗哨,严防来犯之敌!");
break;
case "on冲锋":
trace("步兵接到"+来自+"来电,向敌方"+阵地+"发起冲锋!");
break;
default:
break;
}
司令部.addEventListener("on驻守", 步兵);
战地指挥部.addEventListener("on进攻", 步兵);
战地指挥部.addEventListener("on冲锋",步兵);

好了,关于EventDispatcher类到此就介绍完了,希望大家能够掌握Flash的事件机制并灵活地运用它们。

【责任编辑 李昌杰】 关键词:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号