我们正在使用air 3.9 sdk开发iOS应用程序。我们的应用是这样的,我们在ipa文件中打包了2个SWF,即main.swf和experience.swf。 main.swf最初使用application.xml加载。在main.swf中单击按钮会加载experience.swf(它位于ipa中的bin文件夹中,不会远程下载)。此experience.swf包含资产和代码。
当我们创建ad-hoc构建时,experience.swf第一次完美加载,但如果用户返回main.swf然后再次尝试加载experience.swf,则不会加载。只是默认的舞台颜色是可见的。 (此问题仅发生在ad-hoc构建上。调试版本没有此类问题)
要加载此体验。我们使用flash.display.loader并将loaderContext设置为ApplicationDomain.currentDomain。
mcExperience = new MovieClip();
var url:URLRequest = new URLRequest("ChristmasExperience.swf");
var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null);
loader.load(url, loaderContext);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, CompleteHandler);
addChild(mcExperience);
private function CompleteHandler(e:Event):void
{
trace("I HAVE LOADED .... SWF loaded... , waiting for the constructor call back..." + e.target.loader.content);
//mcExperience.addChild(loader);
mcExperience.addChild(MovieClip(e.target.loader.content));
//TODO : Set the Session ID Here
m_experienceBase.SetSessionID(int(m_ExperienceSessionID));
m_experienceBase.SetLocalPlayer(m_localPlayer);
//(loader.content as MovieClip).soundTransform = new SoundTransform(0);
//addChild(loader);
//setChildIndex(m_tfConsoleMsgDisplay, numChildren - 1);
}
卸载体验后,我们删除了experience.swf的持有者MovieClip并卸载了flash.display.loader。这仍然无法重新加载以前加载的experience.swf。
if (mcExperience)
{
mcExperience.removeChildren();
removeChild(mcExperience);
mcExperience = null;
}
我们使用swf-version = 22作为主要和体验swf。
对我们来说这是一个非常大的问题,我们已经阅读了很多帖子,以帮助更好地理解这个问题(下面的几个例子):
有没有办法在ios应用程序中重新加载辅助swf?
答案 0 :(得分:0)
不知道你是否在这里查了一下: http://blogs.adobe.com/airodynamics/2012/11/09/packaging-and-loading-multiple-swfs-in-air-apps-on-ios/
基本上你不能在IOS上重新加载swf,这是来自Adobe的口。
为了克服这个问题,Adobe附带了一个注意事项:
“注意:重新加载纯资产SWF将适用于可从此处下载的AIR 3.7版本”
如果你问我,相当蹩脚
那么你必须做什么?
在第一个swf版本中,将旧版本的孔代码与旧版本一样好,并将第二个swf纯粹用作图形/动画资源。
虽然这是一个很大的缺点,但归咎于Adobe:D
答案 1 :(得分:0)
虽然它说重新加载纯资产SWF(SWF没有ABC)将适用于AIR 3.7,但我发现4.0存在问题。我有SWF没有代码没有工作,我需要一个解决方案。我在这里回答了我的做法:Load and reload external SWF in AIR for iOS并且更充分地在这里:http://www.eqsim.com/blog/?p=400