gpt4 book ai didi

使用 Air 3.9 的 iOS 应用程序 - 我们如何重新加载以前加载的 swf?

转载 作者:行者123 更新时间:2023-12-01 16:45:17 26 4
gpt4 key购买 nike

我们正在使用 air 3.9 sdk 开发一个 iOS 应用程序。我们的应用程序是这样的,我们在 ipa 文件中打包了 2 个 SWF,即 main.swf 和一个 experience.swf。
main.swf 最初是使用 application.xml 加载的。在 main.swf 中单击按钮会加载 experience.swf(位于 ipa 的 bin 文件夹中,不是远程下载的)。这个 experience.swf 包含 Assets 和代码。

当我们创建一个临时构建时,experience.swf 第一次加载完美,但如果用户返回到 main.swf 然后再次尝试加载 experience.swf,它不会加载。只有默认的舞台颜色可见。 (这个问题只出现在ad-hoc build上,debug build没有这个问题)

为了加载这个experience.swf,我们使用了将loaderContext 设置为ApplicationDomain.currentDomain 的flash.display.loader。

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);
}

卸载体验时,我们移除体验.swf 的持有者MovieClip 并卸载flash.display.loader。这仍然不会重新加载之前加载的 experience.swf。
if (mcExperience)
{
mcExperience.removeChildren();
removeChild(mcExperience);
mcExperience = null;
}

我们将 swf-version=22 用于主 swf 和体验 swf。

这对我们来说是一个相当大的问题,我们已经阅读了很多帖子,以帮助更好地理解这个问题(下面有几个例子):
  • Adobe AIR, IOS, and Multiple SWFs - Returning to a previously loaded SWF
  • Load and reload external SWF in AIR for iOS
  • http://blogs.adobe.com/airodynamics/2012/11/09/packaging-and-loading-multiple-swfs-in-air-apps-on-ios/

  • 有没有办法在 ios 应用程序中重新加载辅助 swf?

    最佳答案

    不知道你有没有看这里:
    http://blogs.adobe.com/airodynamics/2012/11/09/packaging-and-loading-multiple-swfs-in-air-apps-on-ios/

    基本上你不能在 IOS 上重新加载 swf,这是 Adob​​e 口中的。

    为了克服这个问题,Adobe 提供了一个注释:
    “注意:纯 Assets SWF 的重新加载将适用于 AIR 3.7 构建,可从此处下载”
    如果你问我,那就太蹩脚了

    那么你必须做什么?
    像以前一样将孔代码放在旧的空气版本中,在第一个 swf 中,并将第二个 swf 纯粹用作图形/动画资源。

    虽然这是一个很大的缺点,但责怪 Adob​​e :D

    关于使用 Air 3.9 的 iOS 应用程序 - 我们如何重新加载以前加载的 swf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20451765/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com