我正在使用Adobe Animate CC和AS3。我的项目存在以下问题(其中包含大量动画,因此很重)
有4个swf文件位于同一个文件夹中。第一个就像一个空白容器,在运行时自动加载第二个swf。第二个有一些按钮和一些动画。当动画结束时,有一个加载第三个swf的按钮。现在这个第3个瑞士法郎有一个下一个按钮来加载下一个瑞士法郎。第4名瑞士法郎已经回到按钮加载前一个瑞士法郎。第3个瑞士法郎又有一个加载第2个瑞士法郎的主页按钮。 现在,问题在于当按下下一个按钮时,比如在第二个swf上,不仅应该打开第三个swf而应该卸载第二个swf,并且应该释放它占用的内存。与第3和第4瑞士法郎相同。 但是,单击后退按钮时,卸载的swf应再次打开。 如果有人可以提供后退按钮和加载 - 卸载的链接或代码,那将非常感激。
答案 0 :(得分: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);