2017-01-17 2 views
0

플래시 CC를 사용하여 앱을 만들고 있습니다. 응용 프로그램에서 나는 게임의 무리 인 외부 swf 파일을로드해야합니다. 자신의 이름을 읽을 swf 파일이 필요합니다. 나는 그 이름을 읽기 위해swf가 자체 이름을 읽게합니다.

var swfName:String = decodeURIComponent(this.loaderInfo.url.split("/").pop()) 코드를 사용했다. 그것은 작동합니다. 하지만 내 애플 리케이션과 함께 문제는 크기했다. 그래서 외부 swf 파일을 apk에서 제외하고 sd 카드에서로드해야했습니다. 그 문제는 샌드 박스 오류였습니다. 그래서 byteArrayloaderContext을 사용하여 샌드 박스 오류를 건너 뜁니다. 이제는 swf 파일이 자체 파일 이름을 읽지 않고 대신 앱 이름을 읽는 것을 제외하고는 훌륭하게 작동합니다. 어쨌든 swf 파일을 byteArray을 사용하여로드하는 동안 자체 이름을 읽을 수있게 할 수 있습니까? 어떤 도움이라도 좋을 것입니다. 미리 감사드립니다.

답변

0

Loader 개체는로드 된 콘텐츠의 루트를 문서화하기위한 부모입니다. Loader.name 속성에 당신이 원하는 것을 전달합니다

var aLoader:Loader; 
var aSource:ByteArray; 

aLoader = new Loader(); 
aLoader.name = "foo.swf"; 
aLoader.loadBytes(aSource); 

을 다음 외부 SWF (클래스 또는 프레임, 무관)의 문서 루트에 다음 답변

trace(parent);  // [object Loader] 
trace(parent.name) // foo.swf 
+0

감사합니다. 하지만 크로스 검사와 보안 목적을 위해 자체 이름을 읽으려면 swf 파일이 필요합니다. 자체 파일 이름을 읽을 수 없습니까? – TheGunners

+0

** 보안을 우회하는 것은 ** 당신이 왜 그렇게하고 있는지입니다. 콘텐츠에 파일 이름이 포함되어 있지 않습니다. 당신은 어딘가에서 그것을 로딩 할 수 있습니다. 또는 런타임에 ByteArray에 바이트 단위로 쓸 수 있습니다. 모두 동일합니다. – Organis

+0

샌드 박스 오류가 발생하지 않도록 File.applicationStorageDirectory 위치에서 파일을로드 할 수 있는지 조사 할 수 있습니다 (작동하지 않을 수도 있음). 그러면 파일을 보관하는 외부 폴더에서 파일을 복사 할 수 있습니다. – Organis