[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
}
}
}
}