Tip And Tech2008. 6. 7. 20:09
AS3에는 외부 파일이나 데이타에 접근하기 위해 URLLoader와 URLRequest ,Loader클래스를 사용한다.
우선 네트워크 다이어그램을 보면 그림과 같다.
사용자 삽입 이미지
그림을 보면 swf가 서버에 Request(요청)한다. 그러면 서버는 필요한 응답을 하게된다. 중요한 것은 swf가 요청할 때 이다. Request클래스는 swf에서 서버로 요청하기 위해 사용되는 클래스이다.
다만 무엇이 요청하느냐에 따라 요청하는 마스터 클래스를 선택해야 한다.

1 URLLoader
URLLoader클래스는 문자형 데이터(XML이나 파라미터.. 등), 2진데이터(바이너리 데이터 , zip...)등을 처리하기 위해 사용한다.
참고로 AS1같은 경우에 이와 비슷한 역할을 하는 것이 바로 "경로.loadVariables("url 경로")"이다.

2 Loader
Loader클래스는 주로 화면에 보여지는 이미지나 swf등의 파일을 담는 역할을 한다. 이것 역시AS1에 있는
경로.loadMovie("url 경로")와 같은 것이라고 생각하면 된다.

3 URLRequest
서버와 통신시 필요한 파라미터나 메소드(GET , POST)방식을 설정하여 서버에 전달하는 객체이다.
이 객체는 loadVariables("url")이나 loadMovie("url")에서 필요한 "url"을 담당하는 객체이다.
따라서 이 URLRequest()는 서버와의 통신이 필수인 객체이다.

가령 불러올 데이터가 파라미터나 2진 데이터이면 URLLoader()클래스를 사용하고 그래픽 적인 요소를 불러올 것이면 Loader() 클래스를 사용한다. 이 두 객체가 외부와의 통신을 시도하려면 URLRequest()를 필수로 사용하게 된다. 이 두개의 클래스는 모두 load()라는 메서드를 가지고 있다. 이부분에 URLRequest()를 인자로 넣어서 사용하면 된다.

 private var loader:Loader = new Loader();
 private  var request:URLRequest = new URLRequest("./imgs/sample.jpg");
 loader.load(request);
 loader.contentLoaderInfo.addEventListener( Event.COMPLETE , onComp )

 private function onComp( e:Event ):void
{
    addChild( loader )
}

위의 코드는 Loader클래스에 sample.jpg라는 이미지를 불러들여 이를 addChild()하는 코드이다.



Posted by 버터백통