【问题标题】:Cannot free memory of or unload flash swf无法释放或卸载 flash swf 的内存
【发布时间】:2017-11-14 11:26:40
【问题描述】:

我正在使用带有 AS3 的 Adob​​e Animate CC。我的项目有以下问题(其中有很多动画,因此很重)

在同一个文件夹中有 4 个 swf 文件。第一个就像一个空白容器,它在运行时自动加载第二个 swf。第二个有几个按钮和一些动画。当动画结束时,有一个按钮可以加载第三个 swf。现在这第三个 swf 有一个下一个按钮来加载下一个 swf。第 4 个 swf 有返回按钮来加载前一个 swf。第三个 swf 又具有一个加载第二个 swf 的主页按钮。 现在,问题是当按下下一个按钮时,比如在第二个 swf 上,不仅应该打开第三个 swf,而且应该卸载第二个 swf,并且应该释放它占用的内存。与第三和第四瑞士法郎相同。 但是,当单击返回按钮时,卸载的 swf 应该会再次打开。 如果有人可以提供返回按钮和加载卸载的链接或代码,将不胜感激。

【问题讨论】:

  • 到目前为止你尝试了什么?

标签: actionscript-3 memory jquery-animate adobe


【解决方案1】:

我认为一次加载它们然后将它们的可见性/附件切换到舞台要容易得多。但是,如果它们确实太重而无法立即驻留在内存中,则需要一些小技巧将它们加载到单独的 ApplicationDomain 中,这样它们就可以被删除而不会留下任何东西。

import flash.display.Loader;
import flash.net.URLRequest;
import flash.system.LoaderContext;
import flash.system.ApplicationDomain;

var aLoader:Loader = new Loader;

// Loading an SWF so it can be fully unloaded.
aLoader.load(new URLRequest("external.swf"), new LoaderContext(false, new ApplicationDomain));

// Unloading the loaded SWF.
aLoader.unloadAndStop(true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    相关资源
    最近更新 更多