2009. 12. 17. 17:11 PROGRAMMING
[FLASH/AS2] 플래시 액션스크립트2 크로스도메인 설정, AS2 CrossDomain
플래시에서 XML 데이타를 읽어들여야할때
로컬에선 잘 됬을지 모르나,
인터넷상에선 서버가 서로 틀리게 되면 보안정책 위반으로 읽어오지 못함

1. xml이 위치한 서버에 crossdomain.xml을 생성
2. swf를 로딩하는 곳에서 allowScriptAccess 확인
* 스크립트에서 직접 보안정책파일(crossdomain.xml)을 지정할 수도 있다.

crossdomain.xml
<?xml version="1.0" encoding="utf-8"?>
<cross-domain-policy>
 <allow-access-from domain="*" />
</cross-domain-policy>
allow-access-from은 아래와 같이 쓸수 있음
<allow-access-from domain="*.kaudo.com" to-ports="*" />
<allow-access-from domain="kaudo.com" to-ports="80" />
<allow-access-from domain="www.kaudo.com" />


특별한 파일명으로 직접 설정할때에는 Flash 스크립트창에 직접 써줘도 된다.
System.security.allowDomain("*");
System.security.loadPolicyFile(http://도메인/crossdomain.xml);


그리고 swf를 로딩하는 <object나 <embed태그에 allowScriptAccess는 always로 명시해줘야한다.
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="984" height="855" align="middle">
<param name="allowScriptAccess" value="always" />
<param name="allowFullScreen" value="true" />
<param name="movie" value="플래시파일.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#FFFFFF" />
<param name="wmode" value="transparent" />
<embed src="플래시파일.swf" quality="high" bgcolor="#FFFFFF" width="984" height="855" align="middle" allowScriptAccess="always" allowFullScreen="true" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer" />
</object>
allowScriptAccess = always, sameDomain, never 기본값은 sameDomain

댓글을 달아 주세요

  1. BB

    휴 너무너무 감사해요 ~ ㅠㅠ

    2011.05.23 21:24 [ ADDR : EDIT/ DEL : REPLY ]

최근에 올라온 글

최근에 달린 댓글