FMS4.0 클라이언트가 서버 스크립트 파일main에 액세스합니다.asc

5365 단어 서버fmsFLSAH
다음 인터넷의 예를 빌려 간단한 클라이언트가 서버에 접근하여 낙서 기능을 가진 응용을 한다.약간 수정하다.
1. 클라이언트
package 
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.events.NetStatusEvent;
	import flash.events.SyncEvent;
	import flash.net.NetConnection;
	import flash.net.SharedObject;
	import flash.text.TextField;
	import flash.text.TextFieldAutoSize;
	import fl.events.ColorPickerEvent;
	import flash.events.Event;
	import flash.geom.ColorTransform;
	import flash.net.URLRequest;
	import flash.display.Loader;
	public class RemoteStore extends Sprite
	{
		private var remoteStore:SharedObject;
		private var con:NetConnection;
		private var pos:Array;
		private var isDrawing:Boolean = false;
		private var lineColor:uint;
		private var lineThickness:Number = 1.0;
		private var points:Array;
		private var isFirstSync:Boolean = true;
		private var sprite:Sprite=new Sprite();

		private var UserName:String = "123";

		public function RemoteStore()
		{
			mog_lb.text = " ....";
			this.addChild(mog_lb);
			var picreq:URLRequest = new URLRequest("ms.jpg");
			var pic:Loader=new Loader();
			pic.load(picreq);
			bank.addChild(pic);
			bank.addChild(sprite);
			con=new NetConnection();
			var clientObj:Object = new Object();//flash.net.NetConnection   onBWDone。
			clientObj.WB = WB;
			con.client = clientObj;
			con.connect("rtmp://localhost/RemoteStore");

			con.addEventListener(NetStatusEvent.NET_STATUS,onConNetStatu);
		}
		public function onConNetStatu(e:NetStatusEvent):void
		{
			if (e.info.code == "NetConnection.Connect.Success")
			{
				remoteStore = SharedObject.getRemote("DrawDemo",con.uri,false);
				remoteStore.connect(con);
				remoteStore.fps = 10;
				remoteStore.data.pos = points;
				remoteStore.client = this;
				remoteStore.addEventListener(SyncEvent.SYNC,onSynchandler);
				mog_lb.text = " ...";
				trace("NetConnection.Connect.Success");

			}
			if (e.info.code == "NetConnection.Connect.Failed")
			{
				mog_lb.text = " ..";
			}
		}
		public function onSynchandler(e:SyncEvent):void
		{
			if (isFirstSync)
			{
				this.bank.addEventListener(MouseEvent.MOUSE_MOVE,onmouseMove);
				this.bank.addEventListener(MouseEvent.MOUSE_DOWN,onmouseDown);
				this.bank.addEventListener(MouseEvent.MOUSE_UP,onmouseUp);
				cleaner.addEventListener(MouseEvent.CLICK,clicker);
				
				btn.addEventListener(MouseEvent.CLICK,clicker1);
			}
			if (isDrawing)
			{
				return;
			}

			if (remoteStore.data.pos != null)
			{
				this.sprite.graphics.lineStyle(lineThickness,lineColor);
				var pos:Array = remoteStore.data.pos as Array;
				for (var i:int=0; i<pos.length; i++)
				{
					if (i == 0)
					{
						this.sprite.graphics.moveTo(pos[i].x,pos[i].y);
					}
					else
					{
						this.sprite.graphics.lineTo(pos[i].x,pos[i].y);
					}
				}
			}
		}
		public function onmouseUp(e:MouseEvent):void
		{
			remoteStore.setProperty("pos",points);
			isDrawing = false;
			remoteStore.send("setLineStyle",lineThickness,lineColor,colorTran);
		}
		public function onmouseDown(e:MouseEvent):void
		{
			getcolor.addEventListener(ColorPickerEvent.CHANGE,changeHandler);
			getnum.addEventListener(Event.CHANGE, changeNum);
			e.updateAfterEvent();
			this.sprite.graphics.lineStyle(lineThickness,lineColor);
			points=new Array();
			this.sprite.graphics.moveTo(e.localX,e.localY);
			points.push({x:e.localX,y:e.localY});
		}
		public function onmouseMove(e:MouseEvent):void
		{
			if (e.buttonDown)
			{
				this.sprite.graphics.lineTo(e.localX,e.localY);
				var p:Object = {x:e.localX,y:e.localY};
				points.push(p);
				isDrawing = true;
				e.updateAfterEvent();
			}
		}
		public function setLineStyle(thickness:Number,clr:uint,col:uint):void
		{
			colorTran = col;
			lineThickness = thickness;
			lineColor = clr;
		}
		public function changeHandler(e:ColorPickerEvent):void
		{
			lineColor = e.target.selectedColor;
		}
		public function changeNum(event:Event):void
		{
			lineThickness = event.target.value;
		}
		public function clicker(event:MouseEvent):void
		{
			this.sprite.graphics.clear();
			con.call("clearWB", null,UserName);
		}
		
		public function clicker1(event:MouseEvent):void
		{
			this.sprite.graphics.clear();
			con.call("clearWB", null,UserName);
		}
		
		public function WB(UserName:Object):void
		{
			trace("------WB--------");
			this.sprite.graphics.clear();
		}
	}
}

2. 서버 쪽:
application.onAppStart = function() {
	trace("onAppStart");
	
};
application.onConnect = function(client, uName) {
trace("onConnect = "+uName);
	client.UserName = uName;
	
	application.acceptConnection(client);
	//  (  client_nc.call  )
	
         client.clearWB= function(aa) {
                trace(aa)
		application.broadcastMsg("WB", aa);
				
	};
	
};
application.onAppStop = function() {
	trace("onAppStop");
};

3. 존재하는 문제
문제: FMS가 설정되어 있고 포트도 열려 있어 서버에 연결할 수 있지만 main에 접근할 수 없습니다.asc 파일.
해답: 인터넷의 일부 예는 모두 fms3.0을 바탕으로 한다.패션이 FMS4.0 데모 버전이어서 방문이 성공하지 못했습니다.fms3.0으로 다시 설치하는 줄 알았는데 뜻밖에도 천지회에서 방법을 발견했는데 뜻밖에도 해결되었다.방법은 다음과 같다. FMS를 설치한 후 반드시 C:\Windows\system32\drivers\etc\hosts, 즉 host라는 파일을 열고 수첩 프로그램으로 열어야 한다. 마지막 줄에 추가: 127.0.0.1 activate.adobe.com .서버 리셋, 끝!

좋은 웹페이지 즐겨찾기