http://minsangk.com/23


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

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

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;

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


다음 포스트에선,
입력/수정/삭제를 할 폼에 대해 끄작여보자-.-.-
by Anna 안나 2009. 5. 31. 22:05