[플래시] XML로드

2008. 5. 14. 15:50
플래시가 서버와 데이터를 주고 받는 방법은 이전 포스트 에서 밝혔다시피 여러가지가 있지만, 여기서 사용된 방법은 플래시 액션스크립트 2.0 의 XML 객체의 load 함수를 이용하는 것이다. 방법자체는 크게 어렵지 않다.
우선 플래시에 정보를 전달해주는 녀석은 이거다.
http://minsangk.com/xmlTest/titleComment.php?mode=xmlOnce

이 녀석은 GET Method 를 통해 전달된 mode 의 값에 따라 구분 작동하는데,
모드 지정을 안 할 경우 입력된 DB 의 데이터를 XML 로 뿌려준다 (모드 미지정)
XML 로 최신 노드 하나만을 뿌려주거나 (xmlOnce 모드)
HTML 의 테이블 태그를 이용해 뿌려주거나 (html 모드)

XML 로드 코드 (닫기)


(Language : actionscript 2.0)
  1. System.useCodepage = true;
  2.  
  3. myXML = new XML();
  4. myXML.load("http://minsangk.com/xmlTest/titleComment.php?mode=xmlOnce");
  5. myXML.ignoreWhite=true;
  6.  
  7. myXML.onLoad = synchroText;
  8.  
  9. function synchroText(success)
  10. {
  11.  if(success) {
  12.   mcMent.dynamicMent.text = myXML.firstChild.firstChild.firstChild.nodeValue;
  13.   mcDate.dynamicDate.text = myXML.firstChild.firstChild.attributes.date;
  14.  }
  15.  else {
  16.   mcMent.dynamicMent.text = "Comment Load Failed";
  17.   mcDate.dynamicDate.text = "Date Load Failed";
  18.  }
  19. }

XML 로드 코드 (닫기)


실제 코드는 눈물이 날 정도로 간단하다.
xml 을 로드하고 로드가 완료되면 뿌려준다- 이게 끝-.-
설명하고 말 것도 없는 단촐한 코드지만 몇가지만 짚자면.

(Language : javascript)
  1. System.useCodepage = true;

이게 없으면 한글 입력을 플래시가 못 알아듣는다.

(Language : javascript)
  1. myXML = new XML();
  2. myXML.load("http://minsangk.com/xmlTest/titleComment.php?mode=xmlOnce");
  3. myXML.ignoreWhite=true;

myXML 이라는 객체를 만들고, load 메소드로 XML 을 가져온다.
마지막 줄은 가져온 파일에서 공백을 삭제하라는 구문으로 정확한 XML 노드트리의 작동을 위해 꼭 필요하다.



onLoad 함수는 지정된 주소에서 값을 가져와 로드가 완료되면 (성공이든 실패든) 호출된다. 매개변수로 성공/실패 여부를 알려주는 boolean 변수를 하나 주니까 이걸로 if 문을 구성하면 된다. xml 로 가져온 값은 대강 아래와 같이 나올텐데-

(Language : xml)
  1. <?xml version="1.0" encoding="euc-kr" ?>
  2. <root>
  3.     <comment id="1" date="20071126">한 줄기 미소를 위해, 나-</comment>
  4. </root>


(Language : javascript)
  1. if(success) {
  2.   mcMent.dynamicMent.text = myXML.firstChild.firstChild.firstChild.nodeValue;
  3.   mcDate.dynamicDate.text = myXML.firstChild.firstChild.attributes.date;
  4.  }
  5.  

여기서 myXML 의 firstChild 는 root
root 의 firstChild 는 comment
comment 의 firstChild.nodeValue 는 '한 줄기 미소를 위해, 나-' 가 된다.

date 값은 comment(myXML.firstChild.firstChild) 의 속성(attribute) 값이므로,
myXML.firstChild.firstChild.attributes.date;

이렇게 구한 값들을 지정된 무비클립-동적텍스트-텍스트에 넣어주면 끝이다.


다음 포스트에선,
입력/수정/삭제를 할 폼에 대해 끄작여보자-.-.-
Posted by falldown
:
BLOG main image
falldown
by falldown

공지사항

카테고리

Life stream (113)
Design Stream (10)
Personal Stream (31)
So fuck'in special (3)
My Favorites (10)
[ a -i'm ] (13)
From somewhere (15)
Web Study (20)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

달력

«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Total :
Today : Yesterday :