亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? localconnectionnetwork.as

?? flex 實現的一個showcase 喜歡flex的朋友可以
?? AS
字號:
package actionscript.as3.com.teknision.net.local.peernetwork
{
	
	import flash.events.*;
	import flash.net.*;
	import flash.utils.Timer;
	import com.finetune.gateway.events.*;
	
	public class LocalConnectionNetwork extends EventDispatcher{
		
		
//////////////////////////////////////////////////////////////////////
//PRIVATE PROPERTIES

		private var __id:Object=null;
		
		private var __networkname:String;
		private var __members:Array;
		
		private var __lc_host:LocalConnection;
		private var __lc_me:LocalConnection;
		private var __lc_reg:LocalConnection;
		
		
		private var __ishost:Boolean;
		
		//timers
		
		private var __startuptimer:Timer;
		private var __hostpoll:Timer;
		private var __registerpoll:Timer;
		
		
//////////////////////////////////////////////////////////////////////
//PUBLIC PROPERTIES


		public function get name():String{
			return this.__networkname;
		}
		
		public function get isHost():Boolean{
			return this.__ishost;
		}
		
		public function get id():Number{
			var u_id:Number=-1;
			if(this.__id!=null){
				u_id=this.__id as Number;
			}
			return u_id;
		}

//////////////////////////////////////////////////////////////////////
//CONSTRUCTOR

		public function LocalConnectionNetwork(name:String){
			this.__networkname=name;
			this.__members=new Array();
			
			__startuptimer=new Timer(3000);
			__startuptimer.addEventListener(TimerEvent.TIMER,handleStartupTimer);
			__startuptimer.start();
		}

		private function handleStartupTimer(event:TimerEvent):void{
			__startuptimer.stop();
			__startuptimer=null;
			attemptHost();
		}

//////////////////////////////////////////////////////////////////////


		public function close(){
			this.__lc_me.close();
			this.__lc_host.close();
		}
		
		
		public function allowLCDomains(sendingDomain:String):Boolean{
			return true;
		}

//////////////////////////////////////////////////////////////////////


		private function getHostName():String{
			var str:String="_"+this.name+"_host";
			return str;
		}
		
		
		private function getSOName():String{
			var str:String="LCNetwork."+this.name;
			return str;
		}

		private function getMyLCName():String{
		var str="_"+this.name+"_"+this.id+"_lc";
		return str;
	}
	
		private function getOtherLCName(id:Number):String{
			var str:String="_"+this.name+"_"+id+"_lc";
			return str;
		}
		
		private function getRegisterLCName():String{
			var str:String="_"+this.name+"_register_lc";
			return str;
		}
		
		private function initRegisterConnection():void{
			
			if(this.__registerpoll!=null){
				this.__registerpoll.stop();
			}
			
			if(this.__lc_reg==null){
				
				this.__lc_reg=new LocalConnection();
				this.__lc_reg.addEventListener(StatusEvent.STATUS,handleLCStatus);
				this.__lc_reg.addEventListener(SecurityErrorEvent.SECURITY_ERROR,handleSecurityError);
				this.__lc_reg.allowDomain("*");
				
				var i_conn:Boolean=true;
				trace("ATTEMPTING LCN REGISTER");
				try{
					this.__lc_reg.connect(this.getRegisterLCName());
				}catch(e:Error){
					i_conn=false;
				}
				
				if(i_conn){		
					var lc_client:LocalConnectionNetworkClient=new LocalConnectionNetworkClient();
					this.__lc_reg.client=lc_client;
					lc_client.addEventListener(LCNCRecieveIDEvent.RECIEVE_ID,recieveID);
					this.askForMembers();
					
				}else{
					this.__lc_reg=null;
					__registerpoll=new Timer(2000);
					__registerpoll.addEventListener(TimerEvent.TIMER,handleRegisterPoll);
					this.__registerpoll.start();
				}
			}
			
		}
		
		
		private function handleRegisterPoll(event:TimerEvent):void{
			this.__registerpoll.stop();
			this.__registerpoll=null;
			initRegisterConnection();
		}
		
		private function initMyConnection():void{
			this.__lc_me=new LocalConnection();
			this.__lc_me.addEventListener(StatusEvent.STATUS,handleLCStatus);
			this.__lc_me.addEventListener(SecurityErrorEvent.SECURITY_ERROR,handleSecurityError);
			this.__lc_me.allowDomain("*");
			//trace("OPENING MY CONNECTION AS:"+this.getMyLCName());
			
			try{
				var i_conn=this.__lc_me.connect(this.getMyLCName());
			}catch(e:Error){
				trace("Error Opening My Connection");
			}
			
			var lc_client:LocalConnectionNetworkClient=new LocalConnectionNetworkClient();
			lc_client.addEventListener(LCNCRecieveMembersEvent.RECIEVE_MEMBERS,recieveMembers);
			lc_client.addEventListener(LCNCRecieveEvent.RECIEVE_EVENT,recieveEvent);
			this.__lc_me.client=lc_client;
		}
		
	//////////////////////////////////////////////////////////////////////////	
		
		private function startHostPoll(){
			if(this.__hostpoll!=null){
				this.__hostpoll.stop();
			}
			this.__hostpoll=new Timer(30000);
			this.__hostpoll.start();
		}
		
		private function handleHostPoll(event:TimerEvent):void{
			this.__hostpoll.stop();
			attemptHost();
		}
		
		
		private function getNextID():Number{
			var nnum:Number=0;
			if(this.__members.length>0){
				this.__members.sort(Array.NUMERIC);
				nnum=this.__members[this.__members.length-1]+1;
			}
			return nnum;
		}
		
		private function sortNumeric(a, b):Number {
			var max:Number=Math.max(a,b);
			if(max==a){
				return -1;
			}else{
				return 1;
			}
		}
	
		
		private function attemptHost():void{
			if(this.__ishost!=true){
				this.__lc_host=new LocalConnection();
				this.__lc_host.addEventListener(StatusEvent.STATUS,handleLCStatus);
				this.__lc_host.addEventListener(SecurityErrorEvent.SECURITY_ERROR,handleSecurityError);
				this.__lc_host.allowDomain("*");
				
				this.__ishost=true;
				
				try{
					this.__lc_host.connect(this.getHostName());
				}catch(e:Error){
					this.__ishost=false;
				}
				
				if(this.__ishost){
					
					var lc_client:LocalConnectionNetworkClient=new LocalConnectionNetworkClient();
					lc_client.addEventListener(LCNCRegisterEvent.REGISTER,registerMember);
					lc_client.addEventListener(LCNCRecieveEvent.RECIEVE_EVENT,recieveEvent);
					lc_client.addEventListener(LCNCRecieveHostEvent.RECIEVE_HOST_EVENT,recieveHostEvent);
					
					this.__lc_host.client=lc_client;
					
					if(this.__id==null){
						this.__id=this.getNextID();
						this.__members.push(this.id);
						
						var ev:LCNConnectEvent=new LCNConnectEvent();
						ev.ishost=true;	
						this.dispatchEvent(ev);
					}
					trace("IS LCN HOST:"+this.__id);
					this.broadcastMembers();
				}else{
					trace("IS NOT LCN HOST");
					if(this.__id==null){
						this.initRegisterConnection();
					}
				}
			}else{
				this.broadcastMembers();
			}
			
			
			this.startHostPoll();
		}
		
		
		
		private function auditAsHost(){
			this.broadcastMembers();
		}
		
	
	
	//////////////////////////////////////////////////////////////////////////
	
		public function sendEvent(data:Object):void{
			try{
			this.attemptHost();
			var transmission:Object={sender:this.id,data:data};
			if(this.isHost){
				this.sendHostEvent(transmission);
			}else{
				this.__lc_me.send(this.getHostName(),"recieveHostEvent",transmission);
			}
			}catch(e:Error){
				trace("LCNetwork Error:"+e.message);
			}
		}
		
		public function sendHostEvent(data:Object):void{
			if(this.isHost){
				this.auditAsHost();
				
				var members:Array=this.__members;
				for(var i=0;i<members.length;i++){
					var member:Number=members[i] as Number;
					
					if(member!=data.sender && member!=this.id){
						var con_name:String=this.getOtherLCName(member);
						this.__lc_host.send(con_name,"recieveEvent",data);
					}
					
				}
			}
		}
		
		
		
		public function recieveEvent(event:LCNCRecieveEvent):void{
			var finalevent:Object=event.data;
			this.processEvent(finalevent);
		}
		
		private function processEvent(data:Object):void{
			var finalevent:Object=data;
			if(finalevent.sender!=this.id){
				var ev:LCNOnEventEvent=new LCNOnEventEvent();
				ev.data=finalevent;	
				this.dispatchEvent(ev);
			}
		}
		
		public function recieveHostEvent(event:LCNCRecieveHostEvent):void{
			var finalevent:Object=event.data
			if(this.isHost){
				this.sendHostEvent(finalevent);
				this.processEvent(finalevent);
			}
		}
	
	
	//////////////////////////////////////////////////////////////////////////
	//non-host
		
		public function askForMembers():void{
			trace("ASKING FOR LCN MEMBERS:"+this.id);
			this.__lc_reg.send(this.getHostName(),"registerMember",this.__id);
		}
		
		public function recieveMembers(event:LCNCRecieveMembersEvent){
			//trace("GOT MEMBERS:"+event.members.length);
			for(var i:uint=0;i<event.members.length;i++){
				//trace("	member:"+event.members[i]);
			}
			this.__members=event.members;
		}
		
		public function recieveID(event:LCNCRecieveIDEvent):void{
			
			this.__lc_reg.client.removeEventListener(LCNCRecieveIDEvent.RECIEVE_ID,recieveID);
			
			trace("GOT MY ID:"+event.id);
			this.__id=event.id;
			this.__lc_reg.close();
			this.initMyConnection();
			
			var ev:LCNConnectEvent=new LCNConnectEvent();
			ev.ishost=false;	
			this.dispatchEvent(ev);
		}
	
	
	//////////////////////////////////////////////////////////////////////////
	//host
	
		public function registerMember(ev:LCNCRegisterEvent):void{
			
			var i_id:Number=ev.id;
			
			if(i_id<=0){
				i_id=this.getNextID();
			}
			
			trace("REGISTERING MEMBER WITH HOST:"+i_id);
			
			this.addMember(i_id);
			this.broadcastMembers();
		}
		
		private function addMember(i_id:Number=-1):void{
			trace("ADDING MEMBER:"+this.hasMember(i_id));
			if(this.hasMember(i_id)==false){
				this.__members.push(i_id);
				trace("SENDing Back ID:"+i_id);
				this.__lc_host.send(this.getRegisterLCName(),"recieveID",i_id);
			}
		}
		
		private function hasMember(i_id:Number=-1):Boolean{
			for(var i=0;i<this.__members.length;i++){
				if(i_id==this.__members[i]){
					return true;
				}
			}
			return false;
		}
	
		private function broadcastMembers():void{
			trace("Broadcasting members");
			var members=this.__members;
			for(var i=0;i<members.length;i++){
				var member=members[i];
				if(member!=this.id){
					var con_name:String=this.getOtherLCName(member);
					trace("	members to:"+con_name);
					this.__lc_host.send(con_name,"yourMembersMadamme",this.__members);
				}
			}
		}
		
		
		
		private function handleSecurityError(event:SecurityErrorEvent):void{
			trace("LC SECURITY:"+event.text);
		
		}
	
		
		
		private function handleLCStatus(event:StatusEvent):void{
			trace("LC STATUS:"+event.level+":");
		
		}


//////////////////////////////////////////////////////////////////////
		
		
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区香蕉蜜桃| 亚洲一区二区三区免费视频| 国产精品一级黄| 精品国产1区二区| 精品一区二区三区视频| 欧美国产日韩a欧美在线观看| 国产69精品久久久久777| 中文字幕一区二区视频| 欧美影片第一页| 日本午夜精品视频在线观看| 日韩欧美不卡一区| av在线不卡免费看| 亚洲一区在线观看免费观看电影高清| 欧美精品精品一区| 国产成人aaaa| 亚洲国产一区二区三区 | 亚洲免费观看高清| 9191成人精品久久| 国产一区不卡在线| 一区av在线播放| 精品精品国产高清a毛片牛牛| 成人午夜精品一区二区三区| 亚洲一区二区三区四区在线| 精品欧美一区二区在线观看| 99久久国产综合精品女不卡| 天天综合色天天综合色h| 久久久久国产精品麻豆ai换脸| 色综合亚洲欧洲| 精品一区二区三区免费播放| 亚洲丝袜另类动漫二区| 欧美成人一区二区三区| 色呦呦日韩精品| 国产剧情一区在线| 亚洲高清久久久| 国产蜜臀97一区二区三区| 欧美色男人天堂| 成人黄色a**站在线观看| 青青草国产精品亚洲专区无| 亚洲欧美一区二区三区国产精品| 欧美一个色资源| 91福利视频在线| 成人免费毛片app| 国内精品伊人久久久久av影院| 亚洲人成网站色在线观看| 精品国产电影一区二区| 欧美中文字幕一区二区三区| 福利电影一区二区| 麻豆免费精品视频| 亚洲综合色成人| 亚洲色图在线视频| 久久久午夜电影| 欧美一区二区三区免费在线看 | 亚洲午夜久久久久久久久久久 | 成人免费在线播放视频| 日韩精品影音先锋| 欧美日韩你懂的| 91福利视频久久久久| 成人久久视频在线观看| 国产精品1区2区| 久久国产夜色精品鲁鲁99| 亚洲bdsm女犯bdsm网站| 亚洲乱码国产乱码精品精小说| 亚洲国产精品成人综合色在线婷婷| 日韩欧美三级在线| 日韩视频一区二区| 91麻豆精品国产综合久久久久久| 欧美四级电影在线观看| 一本色道久久综合亚洲aⅴ蜜桃 | 国产成人精品aa毛片| 麻豆专区一区二区三区四区五区| 香蕉成人伊视频在线观看| 亚洲一卡二卡三卡四卡五卡| 一区二区三区欧美激情| 亚洲激情男女视频| 亚洲视频网在线直播| 亚洲精品亚洲人成人网| 亚洲乱码一区二区三区在线观看| 亚洲欧美日韩国产另类专区| 亚洲免费观看高清在线观看| 亚洲免费av观看| 亚洲国产日韩在线一区模特| 亚洲国产精品久久久男人的天堂| 亚洲一级在线观看| 天天操天天色综合| 蜜桃视频免费观看一区| 看片网站欧美日韩| 国产精品一品视频| av综合在线播放| 91久久久免费一区二区| 在线观看91视频| 91精品一区二区三区在线观看| 日韩一区二区精品葵司在线| 精品国产乱码久久久久久图片| 国产网红主播福利一区二区| 国产精品成人网| 亚洲一区在线观看免费 | 亚洲午夜一区二区三区| 亚洲国产精品麻豆| 久久精品国产精品亚洲精品| 国产一区二区三区观看| 欧美日韩国产123区| 在线播放91灌醉迷j高跟美女| 欧美videofree性高清杂交| 欧美精品一区二区精品网| 国产精品麻豆久久久| 亚洲黄色尤物视频| 久久99精品国产.久久久久| 成人激情小说网站| 在线不卡a资源高清| 欧美激情在线一区二区| 亚洲一级电影视频| 国产中文字幕一区| 在线亚洲欧美专区二区| 日韩西西人体444www| 中文字幕高清一区| 日韩不卡一二三区| 不卡视频一二三四| 欧美一区二区精美| 中文字幕日韩一区二区| 欧美a一区二区| 色综合久久天天综合网| 日韩午夜激情视频| 樱桃国产成人精品视频| 久久草av在线| 日本福利一区二区| 久久久久久久综合日本| 亚洲综合久久久久| 成人一级片在线观看| 欧美久久一区二区| 亚洲欧美一区二区三区国产精品| 极品销魂美女一区二区三区| 精品污污网站免费看| 国产精品素人一区二区| 久国产精品韩国三级视频| 在线免费av一区| 国产精品欧美久久久久无广告 | 国产精品女同一区二区三区| 日韩成人精品视频| 欧美中文字幕亚洲一区二区va在线| 久久久久久免费毛片精品| 日韩中文欧美在线| 一本久久a久久免费精品不卡| 国产欧美日韩另类一区| 久久国内精品自在自线400部| 欧美日韩卡一卡二| 一区二区三区鲁丝不卡| 风间由美性色一区二区三区| 日韩精品一区二区三区视频播放 | 国产.欧美.日韩| 欧美大胆一级视频| 丝袜美腿亚洲色图| 在线中文字幕一区二区| 亚洲精品水蜜桃| 一本大道久久精品懂色aⅴ| 国产精品毛片大码女人| 国产盗摄视频一区二区三区| 精品久久国产老人久久综合| 日韩高清国产一区在线| 9191成人精品久久| 丝袜美腿一区二区三区| 7799精品视频| 日本视频免费一区| 精品国产百合女同互慰| 美日韩一区二区| 欧美高清www午色夜在线视频| 午夜精品视频在线观看| 欧美日韩成人一区| 奇米精品一区二区三区四区| 51午夜精品国产| 日本人妖一区二区| 日韩一区二区在线观看视频 | 福利电影一区二区| 国产精品不卡在线观看| 99国产精品国产精品毛片| 亚洲天堂网中文字| 欧美性感一区二区三区| 午夜欧美电影在线观看| 6080yy午夜一二三区久久| 亚洲成a人v欧美综合天堂下载 | 亚洲一区二区三区四区中文字幕| 91福利在线看| 日韩电影免费一区| 2014亚洲片线观看视频免费| 国产真实乱对白精彩久久| 国产亚洲一区二区在线观看| 高清久久久久久| 亚洲精品视频在线看| 欧美日韩综合一区| 韩国成人福利片在线播放| 久久精品视频一区二区三区| 99视频一区二区| 午夜成人在线视频| 久久综合国产精品| 91在线精品一区二区| 偷拍与自拍一区| 久久免费美女视频| 在线免费精品视频| 久久99久久久欧美国产| 国产精品私人影院| 欧美老肥妇做.爰bbww|