두 가지 중요한 사항. 1 - SWF는 모든 도메인의 바이너리 데이터를로드 할 수 있어야합니다. 2 - SWF 캔트로드 정책 url에서 XML 파일, 원인 업로드 양식을 사용하면 swf 파일 만 업로드 할 수 있으므로 다른 데이터는 포함 할 수 없습니다. 시도 :Flash AS3 - URLLoader가 다른 도메인의 이진 데이터를로드 할 수 없습니다.
Security.allowDomain("*");
그러나 SWF 파일에서만 작동합니다. 나는 정책 XML 파일을 포함하려 :
var dataXML:XML =
<?xml version="1.0"?>
<!-- http://www.foo.com/crossdomain.xml -->
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>;
그러나에 Security.loadPolicyFile (URL : String)를 전용 파일의 URL이 아닌 데이터를 설정할 수 있습니다. 내 질문에, SWF에서 다른 도메인의 이진 파일을 추가 파일없이로드 할 수있게하려면 어떻게해야합니까? 은 URLLoader 코드 : 파일이 SWF 파일과 다른 도메인의 경우
var request:URLRequest = new URLRequest("http://differentdomain.com/binaryfile.dat");
var words:URLLoader = new URLLoader();
words.dataFormat = URLLoaderDataFormat.BINARY;
words.addEventListener(Event.COMPLETE, prepareFile);
words.addEventListener(IOErrorEvent.IO_ERROR, loadError);
words.addEventListener(SecurityErrorEvent.SECURITY_ERROR, secureError);
words.load(request);
이,주의 보안 오류를 만들 것입니다. 도움 주셔서 감사합니다.
AS3 코드에서 ExternatInterface를 사용하여 JavaScript에서 이진 데이터를 가져올 수 있습니다. 다음은 이진 파일 읽기 용 교차 브라우저 라이브러리입니다. binary reader 이상 버전 jDataView 희망이 있으면 도움이 될 것입니다. Jonatan Hedborg에게 감사드립니다. 전에
aaa.com에서 파일을로드하려면 aaa.com/crossdomain.xml에서 crossdomain.xml을로드해야합니다. 그렇지 않으면 작동하지 않을 수 있습니다. –
그것은 나를 위해 농담처럼 보입니다. 다른 언어는 AS3이 아닌 어느 곳에서나 바이너리 데이터를 다운로드 할 수 있습니까? – speedy
그것은 보안상의 문제이며, 그것이 바로 그 것이다.그 주위의 유일한 방법은 요청을 전달할 수있는 프록시 서버를 설정하는 것입니다. 예를 들어 silverlight는 crossdomain 로딩에 대한 더 엄격한 제한을 가지고 있으므로이 언어가 유일한 언어는 아닙니다. –