• 带参数的EventDispatcher


    //首先  先写一个自定义的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();
    				}
    			}
    

      

  • 相关阅读:
    关于同时上传多个图片的类(有点粗糙)
    关于上传图片的类(有点粗糙)
    关于分页的类(有点粗糙)
    php是什么
    关于glod方法的使用和介绍
    PHP中从数据库获取查询结果时容易出的错误及原因(smarty)
    转载- 支持Android4.0以下webp的使用
    Android用户体验
    转载-Android数据库高手秘籍(一)——SQLite命令
    转载 -安卓开发-Activity中finish() onDestroy() 和System.exit()的区别
  • 原文地址:https://www.cnblogs.com/sinsoul/p/2261396.html
Copyright © 2020-2023  润新知