我有一个使用flash cs 5.5创建的游戏文件。我有另一个swf文件,它是我在该游戏文件中嵌入的提示文件。它在PC上工作正常。当我尝试使用嵌入式swf文件加载该游戏文件时出现问题。我收到以下错误: SecurityError:错误#3226:当LoaderContext.allowCodeImport为false时,无法导入SWF文件。谁能告诉我为什么会这样呢?
答案 0 :(得分:3)
我想你在Android设备上使用adobe air for mobile。在air for mobile中,加载外部SWF文件有额外的限制 - 特别是当它们包含字节代码(ActionScript)时。由于您的辅助SWF文件包含自己的动作脚本代码,因此如果没有明确的安全限额,则无法加载到您的移动空中应用程序中。
AS3在实例化引用嵌入式SWF文件的类时隐式使用Loader
,并使用默认选项加载 - 在移动运行时环境中设置为不同的选项。
您可以通过手动加载来加载它们,方法是自己创建Loader
和LoaderContext
个实例。
var ldr:Loader = new Loader();
var lc:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
lc.allowCodeImport = true;
ldr.load(new URLRequest("YOUR_FILE_PATH"), lc);
另请注意,在iOS中,即使allowCodeImport
设置为true,也无法以任何方式加载带代码的外部SWF。
答案 1 :(得分:1)
尝试这种情境:
var loaderContext: LoaderContext = new LoaderContext();
loaderContext.allowLoadBytesCodeExecution = true;
swfLoader.loaderContext = loaderContext;