- 2009-11-23 (Mon) 10:52
- ActionScript 3.0
요즘, XML 파일에 각종 정보를 담아두고 플래시에서는 XML 파일을 로드한 뒤 로드된 데이터를 이용하는 무비 제작이 많은 편인데…
이 경우, SWF 파일에서 다른 도메인(서버)에 있는 이미지파일을 로드하려고 할 경우, 가끔 에러가 나오기도 한다.
물론, crossdomain.xml 파일도 이상 없이 설정해 놓았다.
상황을 살펴보면,
1. SWF 파일이 있는 도메인(서버)과 다른 도메인(서버)에 XML 파일과 이미지파일이 있는 경우.

var url:URLRequest = new URLRequest("http://www.AAA.com/data.xml");
var loader:Loader = new Loader();
loader.load(url);
위의 소스로 문제없이 이미지파일이 로드된다.
2. SWF 파일이 있는 도메인(서버)에 XML 파일이 있고 다른 도메인(서버)에 이미지파일이 있는 경우.

이 경우 1번에서 사용한 소스로는 이미지파일이 로드되지 않는다.
이유는, LoaderContext 클래스를 매개변수로 전달하지 않아서인데…
아래 소스로 수정하면 이미지파일이 로드된다.
var context:LoaderContext = new LoaderContext();
context.checkPolicyFile = true;
var url:URLRequest = new URLRequest("http://www.BBB.com/data.xml");
var loader:Loader = new Loader();
loader.load(url, context);
LoaderContext 클래스란,
Loader 클래스의 load() 또는 loadBytes() 메서드를 통해 외부 파일을 로드 할 때 매개 변수로 사용되는 클래스입니다.
LoaderContext 클래스에는 세가지 속성이 있는데, 각 속성에 대해 간단히 알아보면
Loader 클래스의 load() 또는 loadBytes() 메서드를 통해 외부 파일을 로드 할 때 매개 변수로 사용되는 클래스입니다.
LoaderContext 클래스에는 세가지 속성이 있는데, 각 속성에 대해 간단히 알아보면
- applicationDomain : 로드 한 SWF 파일(부모)과 로드 된 SWF 파일(자식)의 ApplicationDomain에 대한 관계설정을 합니다.
- checkPolicyFile : SWF 파일이 있는 도메인(서버)과 다른 도메인(서버)에 있는 이미지파일(SWF파일 제외)등을 로드할 경우 설정합니다.
true로 설정하면 이미지파일이 있는 도메인(서버)에서 크로스도메인(crossdomain)정책파일을 확인하고, 보안정책을 체크하게 됩니다. 체크에 이상이 없을 경우 대상 이미지파일을 엑세스 할 수 있게 됩니다.
즉, BitmapData.draw()함수등을 사용해서 대상 이미지 데이터를 가공할 수 있습니다. - securityDomain : 이 속성은 Loader.load() 작업에 사용할 보안 도메인을 지정합니다. 이 속성은 이미지가 아닌 SWF 파일을 로드할 때만 사용합니다.
더욱 자세한 내용은 아래 내용을 참고
다른 도메인(서버)에 있는 XML 파일이 로드되면 대상 도메인(서버)의 정책파일이 확인되었기 때문에 LoaderContext 클래스를 매개변수로 넘겨주지 않아도 이미지파일에 대한 엑세스가 가능해지는 것일까? 아니면 XML 파일과 이미지파일이 같은 도메인(서버)에 있기 때문에 정책파일을 확인하지 않아도 되는 것일까?
전자일 가능성이 더 큰 거 같은데…
자세한 이유를 아시는 분 계시면 좀 알려 주세요;;;
- Newer: BetweenAS3 색상변환 및 필터효과 적용하기
- Older: BetweenAS3 트윈을 그룹으로 만들어 제어하기
Comments:1
- 퍼플린 10-02-17 (Wed) 18:52
-
이거 맨날 헷갈리는듯 -ㅅ-;
보안샌드박스하고 어플리케이션 도메인 이거 이해가 될듯 될듯 하면서도 잘 안되 -ㅅ-;
Trackbacks:0
- Trackback URL for this entry
- http://blog.flasia.com/archives/1351/trackback
- Listed below are links to weblogs that reference
- 다른 도메인(서버)의 파일을 로드할 때 LoaderContext의 설정 from blog.flasia.com

Siaa Reply:
February 17th, 2010 at 6:59 pm
음… 누구나 헷갈리는 거였구나;;
난 내가 기억력이 점점 나빠지는 줄 알았거덩…
그나저나 오늘 자주 들리네~~~ 좋아 아주~~