• 【设为首页】
  • 【收藏闪客居】
当前位置:主页>FLASH AS 编程>AS基础篇>AS 3.0>文章内容
  • AS3中不同类间的广播与接收简单例子(包含参数传递)
  • 来源: 作者:ycccc8202 2007-09-21 【

1.文档类:DispatchEventDemo.as

 
package {
import flash.display.Sprite;
public class DispatchEventDemo extends Sprite
{
  public function DispatchEventDemo()
  {
   new A
   new B
   
  }
}
}

2.中间介质类,连系不同的类:DT.as

 
package {
import flash.events.EventDispatcher;
public class DT {
  private static  var _dispatcher:EventDispatcher;
  public static function get dispatcher():EventDispatcher{
   _dispatcher=_dispatcher==null?new EventDispatcher:_dispatcher
   return _dispatcher
   }
}
}

3.扩展事件类,方便进行事件中的参数传递:EventX.as

package {
import flash.events.Event
public class EventX extends Event {
  public static  const RECEIVE_ARG:String="receive_arg";
  private var _arg:Object
  public function EventX(type:String,arg:Object,bubbles:Boolean=false,cancelable:Boolean=false) {
   super(type,bubbles,cancelable);
   _arg=arg;
  }
  public function get arg():Object {
   return _arg;//返回参数对象
  }
}
}


4.包含事件接收的类:A.as

 
package {
import flash.events.*
public class A {
  public function A() {
   var dispatcher:EventDispatcher=DT.dispatcher;
   dispatcher.addEventListener(EventX.RECEIVE_ARG,onTrace);
  }
  private function onTrace(evt:EventX):void{
   trace(evt);
   trace(evt.arg.a)
   trace(evt.arg.b)
  }
}
}

5.包含事件发送的类:B.as

 
package {
public class B {
  import flash.events.*
  public function B() {
   var dispatcher:EventDispatcher=DT.dispatcher;
   dispatcher.dispatchEvent(new EventX(EventX.RECEIVE_ARG,{a:"arg:a",b:"arg:b"}));
  }
}
}

//PS:上面所列出的就是一个简单的不同类间的事件广播与接收的例子(包含参数传递)


 
DispatchEventDemo.rar (1.15 KB)
 



上一篇:Flex AS3 中处理XML 结点删除与移动   下一篇:[AS3]IconDataManager-图标数据管理类
  • 用户名:新注册) 密码: 匿名评论
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)

Copyright © 2006-2008 flashas.net All Rights Reserved.
网站内容咨询: admin#flashas.net (#为@) 联系QQ:40777822 浙ICP备06033001号
(本网站最佳浏览解析度为1024*768, 建议使用IE 6.0或以上版本浏览器。)