[AS3] 서버사이드로의 데이터 전달 방식 차이점

Flash - as2, as3 2010. 2. 24. 13:12

#1. URLLoader.load() 메서드를 활용하여 서버에서 피드백 받기
package 
{
    import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLLoaderDataFormat;
    import flash.net.URLRequest;
    import flash.net.URLVariables;
	import flash.net.URLRequestMethod;
	
	/*
	 * URLVariables 클래스를 통한 데이터 정의
	 * URLLoader.load() 메서드를 이용한 데이터 전달
	 * URLLoader.load() 메서드를 이용할 경우 전달된 데이터에 대한 피드백을 받을 수 있다.
	 */

    public class URLVariablesExample extends Sprite 
	{

        public function URLVariablesExample() 
		{
            var request:URLRequest = new URLRequest();
            
			// URLVariables 클래스를 사용하여 응용프로그램과 서버 사이에
			// 변수를 전송할 수 있다.
			var variables:URLVariables = new URLVariables();
			variables.name = "Franklin"
			request.url = "http://localhost/greeting.cfm";
			request.method = URLRequestMethod.POST;
            
			// URLRequest 객체의 data 속성에 할당된다.
			request.data = variables;
            
			var loader:URLLoader = new URLLoader();
			// URLLoaderDataFormat - 데이터 수신 방식을 지정한다. BINARY, TEXT, VARIABLES
			loader.dataFormat = URLLoaderDataFormat.VARIABLES;
			loader.addEventListener( Event.COMPLETE, completeHandler );
			try
			{
				// 전달한 데이터에 대한 어떠한 결과를 기대할 경우
				// URLLoader.load() 메서드를 이용
				loader.load( request );
			} catch(e:Error) {
				trace( "Unable to load URL" );
			}
        }
		
		private function completeHandler( e:Event ):void
		{
			//trace( e.target.data );
			trace( e.target.data.welcomeMessage );
		}
    }
}



외에 sendToURL() 메서드를 통해 데이터를 전달할 수 있으나, 서버의 응답여부는 무시한다.
전달한 데이터에 해당하는 웹페이지를 바로 확인하고자 한다면 navigaToURL() 메서드를 이용한다.

#2. navigateToURL() 메서드를 이용하여 데이터 전달하고 해당 url 에서 확인.
package  
{
	import flash.display.Sprite;
	import flash.net.navigateToURL;
	import flash.net.URLRequest;
	import flash.net.URLVariables;
	import flash.net.URLRequestMethod;
	/**
	 * navigateToURL() 메서드 활용
	 */
	public class NavigateToURLTest extends Sprite
	{
		private var url:String = "http://localhost";
		
		public function NavigateToURLTest() 
		{
			init();
		}
		private function init():void
		{
			var variable:URLVariables = new URLVariables();
			variable.name = "voooo";
			variable.num = "444444";
			
			var req:URLRequest = new URLRequest( url );
			req.data = variable;
			
			// GET/POST 방식을 지정할 수 있다.
			//req.method = URLRequestMethod.POST;
			
			navigateToURL( req );
		}		
	}
}


: