FlashMX2004的事件机制:从AsBroadcaster到EventDispatcher
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-12
前言:论坛里关于AsBroadcaster(广播)类的讨论很多,有很多精妙的讲述,但为了和EventDispatcher(派遣)类有个比较,不得不把这位"老兄"拉来客串一下。对它我不会讲的很详细,不解的地方可以去搜搜前辈的帖子哦。 AsBroadcaster(广播)类在MX(Flash6)里写做"ASBroadcaster",这是为什么有时会发生以前的程序在2004版里发生异常的原因之一。AsBroadcaster 类具有四个静态的方法: ------------------------------------------------------------------------------ static function initialize(o:Object); //o:对象 //initialize:初始化方法,为对象o附加上作为事件源的各项功能。那么事件源都有什么功能呢? static function broadcastMessage(msg:String); //msg:消息 //broadcastMessage:广播方法,事件源的一个主要功能就是向外界广播一条消息,告知听广播的人"某一事件发生啦!" static function addListener(o:Object); //o:对象 //addListener:注册监听者方法,也就是决定广播消息给谁听的意思 static function removeListener(o:Object); //o:对象 //removeListener:注销监听者方法,也就是消息不再广播给谁听-------------------------------------------------------------------------------- 如此看来AsBroadcaster类也不怎么复杂嘛,下面看看它的具体使用吧! -----AsBroadcaster测试.fla 开始------ var 司令部=new Object(); //啊,司令部是个发布指挥消息的地方,用它做事件源是个不错的选择 AsBroadcaster.initialize(司令部); //这里直接用AsBroadcaster来引用AsBroadcaster类,原因如上述 //调用AsBroadcaster类的静态方法initialize,为司令部附加上作为事件源的各项功能 var 步兵=new Object(); //生成步兵对象 步兵.on进攻=function(){ //on进攻: 这里之所以用’on’做前缀,是为了表明这个方法是响应一定事件的方法 trace("步兵接到司令部来电,轻装上阵,火速向敌方阵地前进!"); // 接到’on进攻’消息后采取的措施 } 步兵.on驻守=function(){ //同上 trace("步兵接到司令部来电,就地待命,多设岗哨,严防来犯之敌!"); } 司令部.addListener(步兵); //将步兵添加为司令部的监听者,从现在起他将听从司令部的指令行事 //以下雷同的地方,恕不赘述 var 装甲兵=new Object(); 装甲兵.on进攻=function(){ trace("装甲兵接到司令部来电,加足马力,火速向敌方阵地开进!"); } 装甲兵.on驻守=function(){ trace("装甲兵接到司令部来电,就地待命,检修装甲,作好随时进攻的准备!"); } 司令部.addListener(装甲兵); var 炮兵=new Object(); 炮兵.on进攻=function(){ trace("炮兵接到司令部来电,向敌方阵地猛烈轰击!"); } 炮兵.on驻守=function(){ trace("炮兵接到司令部来电,就地待命,保证弹药准备充足!"); } 司令部.addListener(炮兵);//-------------------下面开始演示------------------------------------ trace("司令部一号指示"); 司令部.broadcastMessage("on进攻"); //司令部用’broadcastMessage’ 方法广播’on进攻’指令 trace("司令部二号指示"); 司令部.removeListener(步兵); //"将在外,君令有所不授",司令部用’removeListener’方法注销了’步兵’听从指令的义务 司令部.broadcastMessage("on驻守"); //司令部用’broadcastMessage’ 方法广播’on驻守’指令。注意:步兵现在不会驻守哦 -----AsBroadcaster测试.fla 结束----- 具体的测试结果,大家试试便知。现在我们看看AsBroadcaster类的局限所在: 1、如果司令部发出的指令是"向一号高地进攻",这个消息应该怎么广播呢?我们当然可以为步兵定义一个''on向一号高地进攻 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: flash google search搜索下一篇: 飘动的汽泡
关于FlashMX2004的事件机制:从AsBroadcaster到EventDispatcher的所有评论