我正在将 as2 swf 加载到 AIR 应用程序中。从文件加载时它可以正常工作。但是,当从字节加载时,它会以某种方式损坏(它对鼠标使用react,但一些元素处于非事件状态)
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));
那么为什么不直接从文件加载它呢?我的资源受到加密保护,我无法将它们转储到磁盘 - 它们仍然必须受到保护。
可能存在哪些技巧可以正确地从字节加载?
有similar question ,但就我而言,as2 会导致更多问题。
最佳答案
AS2 和 AS3 使用不同的运行时(字节码不同),因此您将无法在 AS3 运行时正确执行任何 AS2 字节码。你基本上是将 AS2 代码注入(inject)到你的 AS3 应用程序中,所以它不会工作:/
关于actionscript-3 - Loader.load 和 Loader.loadBytes 差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4214161/