플래시에서 서버와 데이터 통신에 사용되는 클래스로, 데이터 로드가 성공적으로 수행되었는지를 확인하고 다운로드 진행상황을 모니터링 할 수 잇는 클래스 입니다. 또한 객체에 있는 모든 변수를 지정된 URL(서버사이드 프로그램)로 전송할 수 있고, 지정된 URL에 있는 모든 변수를 객체에 로드할 수 있습니다.
속성
contentType : String
LoadVars.send() 메서드 또는 LoadVars.sendAndLoad()메서드를 호출할 때 서버에 전송되는 MINE유형(데이터의 기본 내용 형식)입니다. 기본값은 application/x-www-form-urlencoded입니다.
loaded : Boolean
load 또는 sendAndLoad작업이 완료 되었는지 여부를 나타내는 부울값으로, 기본값은 undefined입니다.
contentType : String | LoadVars.send() 메서드 또는 LoadVars.sendAndLoad()메서드를 호출할 때 서버에 전송되는 MINE유형(데이터의 기본 내용 형식)입니다. 기본값은 application/x-www-form-urlencoded입니다. |
---|---|
loaded : Boolean | load 또는 sendAndLoad작업이 완료 되었는지 여부를 나타내는 부울값으로, 기본값은 undefined입니다. |
생성자
LoadVars
LoadVars 객체를 만듭니다.
LoadVars | LoadVars 객체를 만듭니다. |
---|
메서드
|
|
|
|
|
|
|
|
이벤트
onData = function(src:String){}
서버에서 데이터를 완전히 다운로드했을 때 또는 서버에서 데이터를 다운로드 하는 동안 오류가 발생할 때 호출되는 이벤트입니다.
onHTTPStatus = function(httpStatus:Number){}
플래시 플레이어가 서버로부터 HTTP상태코드를 받을 때 호출되는 이벤트입니다.
onLoad = function(success:Boolean){}
LoadVars.load() 메서드 또는 LoadVars.sendAndLoad()메서드 작업이 종료되었을때 호출되는 이벤트입니다.
참고 사이트
http://www.miniusa.com/minimail/
http://www.mskgent.be/ - 박물관 내의 데이터들을 외부의 데이터에 저장하고 데이터를 가져와 화면에 보여주도록 하는 사이트
http://trend.paran.com/ - 사용자들이 실시간으로 선택한 정보를 표현
http://www.richardfoster.com/
http://www.idaehan.com/happywave/webzine/main_200608.jsp/
플래시와 서버간의 데이터 통신을 통해 구현할 수 있는 웹 사이트는 너무나도 무궁무진합니다. 플래시로 제작된 게시판, 이메일 보내기, 포트폴리오 리스트, 뉴스등 실시간으로 컨텐츠 내용이 변동되는 경우는 모두 다 서버와 데이터 통신을 통해 구현된다고 보면 됩니다. 이런경우 플래시는 일반적인 웹 페이지와 같이 데이터를 서버에 보내고 필요한 데이터를 받아서 보여주는 역할만 한다고 보면 됩니다.
데이터를 실제 저장하거나 저장된 데이터를 찾는 역할은 플래시 자체적으로는 불가능합니다. 이런 역할을 하려면 서버사이드 언어로 제작된 페이지가 필요합니다. 서버사이드 언어는 서버에서 실행되는 프로그램으로서 일반적으로 PHP, ASP, JSP등의 언어로 만들어진 페이지를 말합니다.
예제
fscommand("allowscale", false);
// Tween 클래스 사용
import mx.transitions.Tween;
import mx.transitions.easing.*;
// 초기 셋팅
System.useCodepage = true;
autoSetting_0_mc.gotoAndStop(2);
cover_mc._visible = false;
alert_mc._x = Stage.width;
Selection.setFocus("from_txt");
// 사용 변수
var dataURL:String = "http://www.aidone.co.kr/as2Study/loadvars/";
var autoSetting:String = "A";
var sendCheck:Boolean = false;
// 커버 버튼 영역 셋팅
cover_mc.onRollOver = function(){
this.useHandCursor = false;
}
// 첫번째 자동 셋팅 선택
autoSetting_0_mc.onRelease = function(){
this.gotoAndStop(2);
autoSetting_1_mc.gotoAndStop(1);
autoSetting = "A";
}//라디오버튼
// 두번째 자동 셋팅 선택
autoSetting_1_mc.onRelease = function(){
this.gotoAndStop(2);
autoSetting_0_mc.gotoAndStop(1);
autoSetting = "B";
}
// 자동 셋팅을 위해서 데이터를 로드합니다.
loadBtn_mc.onRelease = function(){
var result_lv:LoadVars = new LoadVars();
result_lv.onLoad = function(success:Boolean){
if(success){
load_txt.text = unescape(this.toString());
from_txt.text = this.from;
to_txt.text = this.to;
subject_txt.text = this.subject;
Selection.setFocus("message_txt");
}else{
alert("view","데이터를 불러오지 못했습니다.\n데이터 경로를 확인해주세요.");
}
};
var send_lv:LoadVars = new LoadVars();
send_lv.autoSetting = autoSetting;
send_txt.text = send_lv.toString();
send_lv.sendAndLoad(dataURL+"autoSetting.php",result_lv,"POST");
}
// 이메일 보내기
sendBtn_mc.onRelease = function(){
var result_lv:LoadVars = new LoadVars();
result_lv.onLoad = function(success:Boolean){
if(success){
alert("view",this.message);
}else{
alert("view",this.message);
}
};
var send_lv:LoadVars = new LoadVars();
send_lv.from = from_txt.text;
send_lv.to = to_txt.text;
send_lv.subject = subject_txt.text;
send_lv.message = message_txt.text;
if(from_txt.text != "" && to_txt.text != "" && subject_txt.text != "" && message_txt.text != "" ){
sendCheck = true;
send_lv.sendAndLoad(dataURL+"sendMail.php",result_lv,"POST");
}else{
alert("view","누락된 데이터가 있습니다.\n데이터를 확인해주세요.");
}
}
// 알림창 제어
function alert(viewCheck:String,message:String):Void{
if(viewCheck == "view"){
cover_mc._visible = true;
alert_mc.result_txt.text = message;
alert_mc._x = Stage.width;
new Tween(alert_mc,"_x",Strong.easeInOut,alert_mc._x,150,20,false);
}else{
if(sendCheck == true){
from_txt.text = to_txt.text = subject_txt.text = message_txt.text = send_txt.text = load_txt.text = "";
sendCheck = false;
Selection.setFocus("from_txt");
}
cover_mc._visible = false;
new Tween(alert_mc,"_x",Strong.easeInOut,alert_mc._x,Stage.width*-1,20,false);
}
}
// 알림창 닫기
alert_mc.okBtn_mc.onRelease = function(){
alert("hide",null);
}
XML 데이터를 송수신 할 수 있는 클래스 - XMLConnector
플래시에서 XML데이터를 보내거나 받을 때 사용한 클래스로, XML데이터를 반환하는 데이터 소스에 다른 구성요소를 바인딩하면 구성요소간에 통신 할 수 있습니다. 바인딩이란 한 구성요소의 속성을 다른 구성요소에 매핑하는 것을 말합니다. 구성요소 A의 값이 변경되면 구성요소 B는 구성요소 A값을 참조해 새로운 값으로 보이는 것입니다. 바인딩에 관해서는 실제 예제를 제작하면서 자세히 설명하도록 하겠습니다.
속성
XMLConnector.direction | 데이터를 전달했는지, 수신했는지 또는 데이터를 전달하고 수신했는지를 나타내는 속성입니다. |
---|---|
XMLConnector.ignoreWhite |
XML데이터의 불필요한 공백을 삭제시키는 부울(Boolean)값 속성으로, 기본은 false입니다. |
XMLConnector.multipleSimultaneousAllowed | 동시에 여러 XML데이터 호출이 발생할 수 있는지를 나타내는 부울(Boolean)값 속성으로, 기본은 false입니다. |
XMLConnector.params |
trigger()메서드 작업을 실행할 때 서버로 보내는 데이터 지정 속성입니다. |
XMLConnector.results |
trigger()메서드 작업의 결과로, 서버에서 수신한 데이터를 식별하는 속성입니다. |
XMLConnector.suppressInvalidCalls |
매개변수가 유효하지 않을 경우 호출을 취소할지 여부를 나타내는 부울(Boolean)값 속성으로, 속성값이 true이면 매개변수의 유효성 검사를 진행하고, 실패하면 trigger()메서드가 중단됩니다. |
XMLConnector.URL |
XML데이터를 수신, 송신할 때 사용하는 주소 속성입니다. |
메서드
XMLConnector.trigger() | XMLConnector구성요소를 통해 서버와 호출을 시작하는 메서드로, XML데이터 송 수신을 시작하는 것을 의미합니다. |
---|
이벤트
XMLConnector.result | 서버와 통신이 성공적으로 완료되었을 때 실행되는 이벤트입니다. |
---|---|
XMLConnector.send |
서버와 통신을 시작할때 실행되는 이벤트입니다. |
XMLConnector.status |
서버와 통신산태를 알릴 때 실행되는 이벤트입니다. |
참고 사이트
http://www.kobalt60.com/
플래시에서 데이터를 주고 받을 때 가장 안정적이고 효과적으로 사용할 수 있는 XML은 가공 및 확장성이 뛰어나기 때문에 플래시 데이터 연동에 가장 많이 사용하고 있습니다. 플래시는 사용자가 손쉽게 XML 데이터를 수신해서 사용할 수 있도록 XMLConnect 구성요소를 제공합니다. 아무리 복잡한 구조의 XML이라도 XMLConnector구성요소를 이용하면 손쉽게 XML데이터를 관리 할 수 있습니다.
댓글