我有一个用于IOS的flash(AIR)应用程序。
我使用adt(Air Developer Tool)打包应用程序,同时传递一个SWF列表,我打算稍后在外部加载以删除代码,为了论证,我们可以说这里有#s我只需要一个SWF来删除代码。
应用程序已成功打包,并且从代码中剥离的SWF将创建到文件夹" externalStrippedSwfs"。
我在IOS上运行应用程序,并在运行时从我的服务器加载由adt创建的剥离的SWF。 剥离的SWF包含使用ActionScript 3中的嵌入标记嵌入的资源(例如纹理)。
当SWF的加载完成后,由于某种原因,应用程序域中不存在任何定义。
我想指出的是,当我在PC上测试它时,一切正常(当然,加载一个在这种情况下没有剥离代码的SWF)。
这里有两种不同的加载方法,我尝试加载外部剥离的SWF,两者都成功加载了SWF,但两者都导致IOS上的空定义名称向量。
https://www.dropbox.com/s/yeka4xo52clhhak/LoaderA.as?dl=0 https://www.dropbox.com/s/fl06foy95mt63lg/LoaderB.as?dl=0
当然,当我尝试获取资产时,会返回错误,因为没有定义:
try
{
trace(ApplicationDomain.currentDomain.getDefinition("something"));
}
catch (error:Error)
{
trace("Error: " + error.name + ", " + error.errorID + ", " + error.message);
}