[AS3] 서버로 전달할 데이터 선언 방식

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

#1. 내부 혹은 외부에 선언된 데이터를 data 로 전달
package  
{
	import flash.display.Sprite;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.net.URLRequestMethod;
	
	public class SendData extends Sprite
	{
		private var dataXML:XML;
		private var url:String = "http://localhost/index.php";
		
		public function SendData() 
		{
			init();
			sendData();
		}
		
		private function init():void
		{
			// url 로 전달할 xml 데이터 정의
			dataXML =
				
					
					voooo
					yoyoyoyo
				;
		}
		
		// URLLoader 를 통한 HTTP 통신
		private function sendData():void
		{
			var req:URLRequest = new URLRequest( url );
			req.contentType = "text/xml";
			
			// URLRequest 데이터 지정
			req.data = dataXML.toXMLString();
			// 데이터 전달 방식 지정(POST)
			req.method = URLRequestMethod.POST;
			
			var loader:URLLoader = new URLLoader();
			try
			{
				loader.load( req );
			} catch ( e:ArgumentError ) {
				trace( "An ArgumentError has occurred." );
			} catch ( e:SecurityError ) {
				trace( "A SecurityError has occurred." );
			}
		}
		
	}

}


#2. URLVariables() 메서드를 이용하여 데이터 선언
- URLVariables 생성자 내에서 지정
- URLVariables.decode() 메서드 내에서 지정
- URLVariables 객체 자체에 포함된 특정 속성에 따라 지정
package 
{
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.net.URLVariables;
    import flash.net.sendToURL;
	
	/*
	 * sendToURL()메서드를 통한 데이터 전달
	 */
	
    public class SendToURLExample extends Sprite 
	{

        public function SendToURLExample() 
		{
			// URLVariables객체에 캡쳐된 사용자 세션에 대한 데이터를
			// url 로 전달한다.
            var url:String = "http://localhost";
            var variables:URLVariables = new URLVariables();
            variables.sessionId = new Date().getTime();
            variables.userLabel = "voooo";

            var request:URLRequest = new URLRequest(url);
            request.data = variables;
            
			trace("sendToURL: " + request.url + "?" + request.data);
            
			try {
                sendToURL(request);
            }
            catch (e:Error) {
                // handle error here
            }
        }
    }
}

: