as2 SWF를 AIR 응용 프로그램에로드하고 있습니다. 파일에서로드하면 제대로 작동합니다. 바이트에서로드 때, 그것이 어떤 방법으로 나뉩니다Loader.load 및 Loader.loadBytes의 차이점
var bytes:ByteArray = ... //loaded from resources
var loader:Loader = new Loader();
var context:LoaderContext = new LoaderContext(false);
context.allowCodeImport = true; //this is neccessary
// Method 1 - blocks some scripts in loaded SWF
//context.applicationDomain = new ApplicationDomain();
// (application domain has no effect with as2 swf)
//context.securityDomain = SecurityDomain.currentDomain; //gives error 2114: securityDomain must be null
loader.loadBytes(bytes, context);
// Method 2 - loads properly
//loader.load(new URLRequest(file.url));
그래서 왜 그냥 파일에서로드 (이것은 마우스에 반응하지만, 일부 요소는 비활성)? 내 리소스는 암호화로 보호되며 디스크에 덤프 할 수 없으며 보호해야합니다.
에서 어떤 트릭이 올 Y 르게로드합니까??
similar question이 있지만 제 경우에는 as2가 더 많은 문제를 일으 킵니다.
답변 해 주셔서 감사합니다. 나는 왜 같은 AVM1 코드가 파일에서 로딩 될 때 완전히 작동하는지 궁금하며, 바이트에서 로딩 될 때 부분적으로 손상된다. – alxx
'load' 메서드는 SWF를 자산으로 처리하고 AVM1 인스턴스에서이를 실행하는 것을 알고 있기 때문에'loadBytes' 메서드는 AVM1 바이트 코드를 문제를 일으키는 AVM2 바이트 코드로 삽입하기 때문입니다. – gthmb
어쩌면 이것이 옳은 것입니다 (Adobe 엔지니어 만이 알 수 있습니다.) 어쨌든 이것이 버그 인 것 같습니다. 나는 AS2 SWF (동일한 기능이 다른 방식으로 만들어 짐)를 다시 만들어 냄으로써 오래 전에 문제를 해결했지만 직접적인 해결책은 발견되지 않았습니다. – alxx