//首先 先写一个自定义的EventDisplay的类 继承Event package gameCode.ui.SecondLayer.onlinePlayer { import flash.events.Event; public class OnlineEventDisplay extends Event { //需要监听的类 static public const WANJIA_ITEM_CLICK:String="WANJIA_ITEM_CLICK"; //我有3个事件需要派发 所以就写了3个常量 static public const WANJIA_SILIAO_ITEM_CLICK:String="WanJia_SiLiao_ITEM_CLICK"; static public const WANJIA_ADD_ITEM_CLICK:String="WanJia_Add_ITEM_CLICK"; static public const WANJIA_ZUDUI_ITEM_CLICK:String="WanJia_ZuDui_ITEM_CLICK"; //这里是用来传入我用来判断的类别 public var leibie:String=""; //这个data是用来传入你想传入的参数 public var data:Object; //注意 这里需要把冒泡设为true; public function OnlineEventDisplay(type:String, bubbles:Boolean=true, cancelable:Boolean=true) { super(type, bubbles, cancelable); } //复写clone方法 把data内的数据放入事件内置的data里 override public function clone():Event { var e:OnlineEventDisplay=new OnlineEventDisplay(type,bubbles,cancelable); e.data=this.data; return e; } } }
发送的地方
private var data:Object; hatredIcon.addEventListener(MouseEvent.CLICK,onhatredIconClickHandler); plusIcon.addEventListener(MouseEvent.CLICK,plusIconClickHandler); icon.addEventListener(MouseEvent.CLICK,iconClickHanlder); protected function onhatredIconClickHandler(event:MouseEvent):void { var e:OnlineEventDisplay = new OnlineEventDisplay(OnlineEventDisplay.WANJIA_ITEM_CLICK); e.data = this.data; e.leibie=OnlineEventDisplay.WANJIA_SILIAO_ITEM_CLICK; this.dispatchEvent(e); } protected function plusIconClickHandler(event:MouseEvent):void { var e:OnlineEventDisplay = new OnlineEventDisplay(OnlineEventDisplay.WANJIA_ITEM_CLICK); e.data = this.data; e.leibie=OnlineEventDisplay.WANJIA_ADD_ITEM_CLICK; this.dispatchEvent(e); } protected function iconClickHanlder(event:MouseEvent):void { var e:OnlineEventDisplay = new OnlineEventDisplay(OnlineEventDisplay.WANJIA_ITEM_CLICK); e.data = this.data; e.leibie=OnlineEventDisplay.WANJIA_ZUDUI_ITEM_CLICK; this.dispatchEvent(e); }
接收的地方 protected function basebg1_contentCreationCompleteHandler(event:FlexEvent):void { onlinePlayer_List.addEventListener(OnlineEventDisplay.WANJIA_ITEM_CLICK,ItemClickHandle); } protected function ItemClickHandle(event:OnlineEventDisplay):void { if(event.leibie == OnlineEventDisplay.WANJIA_SILIAO_ITEM_CLICK) { onLinePlayerPanelEvent.dispatch("WANJIA_SILIAO_ITEM_CLICK",event.data.id); event.stopImmediatePropagation(); } if(event.leibie == OnlineEventDisplay.WANJIA_ADD_ITEM_CLICK) { onLinePlayerPanelEvent.dispatch("WANJIA_ADD_ITEM_CLICK",event.data.id); event.stopImmediatePropagation(); } if(event.leibie == OnlineEventDisplay.WANJIA_ZUDUI_ITEM_CLICK) { onLinePlayerPanelEvent.dispatch("WANJIA_ZUDUI_ITEM_CLICK",event.data.id); event.stopImmediatePropagation(); } }