FlashMX2004的事件机制
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-08
queueObj:一个事件派遣中心对象 eventObj:事件对象,注意:与 dispatchEvent不同,它的target并无默认值,需要你手工设定. 为什么将这个方法称为事件传达呢?因为它可以让当前的事件派遣中心指示另一个事件派遣中心(方法的第一个参数)向外界广播消息。其实在dispatchEvent方法的内部就调用了dispatchQueue,只是将参数queueObj设为当前的事件派遣中心罢了。 */ function addEventListener(event:String, handler):Void /*注册某个事件的监听者 event:监听的事件名称 handler:监听事件的对象 这个方法与AsBroadcaster类的addListener方法相比,多出了参数event, 明确了所监听的具体事件。 */ function removeEventListener(event:String, handler) /*注销某个事件的监听者 event:事件名称 handler:要注销的监听事件的对象 这个方法与AsBroadcaster类的removeListener方法相比,多出了参数event,明确了从哪个事件中注销监听对象。 下面就让我们在战场上实战一下EventDispatcher吧。假设有两个指挥中心,一个是司令部,一个是战地指挥部。有三个兵种,分别是炮兵、步兵和敢死队。司令部可以指挥炮兵的进攻、驻守和步兵的驻守,战地指挥部可以指挥步兵的进攻、冲锋和敢死队的冲锋,并且司令部可以向战地指挥部传达指示。下面是实现上述复杂关系的代码: -----EventDispatcher测试.fla 开始----- import mx.events.EventDispatcher; //导入 mx.events.EventDispatcher类 var 司令部 = new Object(); 司令部.名称 = "司令部"; EventDispatcher.initialize(司令部); //为司令部对象附加上派遣中心的相关功能。 var 战地指挥部 = new Object(); 战地指挥部.名称="战地指挥部"; EventDispatcher.initialize(战地指挥部); //为战地指挥部对象附加上派遣中心的相关功能。 var 步兵 = new Object(); 步兵.on进攻 = function(eventObj) { //步兵的’on进攻’事件处理方法,记住需要有参数 var 来自=eventObj.target.名称; //eventObj.target引用广播’on进攻’事件的对象,用它可以访问事件源并反馈消息。 var 阵地=eventObj.阵地; //获取事件的关于’ 阵地’属性值 trace("步兵接到"+来自+"来电,轻装上阵,火速向敌方"+阵地+"前进!"); }; 步兵.on驻守 = function(eventObj) { var 来自=eventObj.target.名称; trace("步兵接到"+来自+"来电,就地待命,多设岗哨,严防来犯之敌!"); }; 步兵.on冲锋=function(eventObj){ var 来自=eventObj.target.名称; var 阵地=eventObj.阵地; trace("步兵接到"+来自+"来电,向敌方"+阵地+"发起冲锋!"); } 司令部.addEventListener("on驻守", 步兵); //向司令部的’on驻守’事件注册监听对象’步兵’ 战地指挥部.addEventListener("on进攻", 步兵); //向司令部的’on进攻’事件注册监听对象’步兵’ 战地指挥部.addEventListener("on冲锋",步兵); //向战地指挥部的’on冲锋’事件注册监听对象’步兵’ var 炮兵 = new Object(); 炮兵.on进攻 = function(eventObj) { var 来自=eventObj.target.名称; var 阵地=eventObj.阵地; trace("炮兵接到"+来自+"来电,向敌方"+阵地+"阵地猛烈轰击!"); }; 炮兵.on驻守 = function(eventObj) { var 来自=eventObj.target.名称; trace("炮兵接到"+来自+"来电,就地待命,保证弹药准备充足!"); }; 司令部.addEventListener("on驻守", 炮兵); 司令部.addEventListener("on进攻", 炮兵); var 敢死队=new Object(); 敢死队.on冲锋=function(eventObj){ var 来自=eventObj.target.名称; var 阵地=eventObj.阵地; trace("敢死队接到"+来自+"来电,向敌方"+阵地+"发起冲锋!拼死也要拿下!"); } 战地指挥部.addEventListener("on冲锋",敢死队); //------- |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于FlashMX2004的事件机制的所有评论