退出框架时卸载 swf

Posted

技术标签:

【中文标题】退出框架时卸载 swf【英文标题】:Unloading an swf upon exiting frame 【发布时间】:2012-12-03 06:08:49 【问题描述】:

我进行了四处搜索,但无法将找到的任何内容应用到我的代码中以使其正常工作。

我正在构建一个网站,导航到每个页面(框架)都会加载带有内容的外部 swf。理想情况下,我希望在离开框架时卸载内容,以便我可以加载新的 swf。 这是我用于加载 swf 的 as3:

var swfLoader:Loader = new Loader();

stage.addChild(swfLoader); swfLoader.x = 0; swfLoader.y = 100;

var bgURL:URLRequest = new URLRequest("gallery_swf/reg_slide.swf");

swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadProdComplete);

swfLoader.load(bgURL);

函数 loadProdComplete(e:Event):void

trace("文件加载");

【问题讨论】:

【参考方案1】:

简单使用:

swfLoader.unload(); 

卸载 swf。

【讨论】:

在离开框架的事件处理程序中。 好的,这样可以在离开框架时卸载 swf,但不幸的是出现了另一个问题。当我导航回该框架时,swf 不会重新加载,就像我需要的那样。似乎卸载程序否定了要求它加载 swf 的操作脚本? 这可能对你有用:beautifycode.com/the-finer-art-of-loading-1-simple-load-unload【参考方案2】:

卸载外部 swf 最安全的方法是使用加载程序的 unloadAndStop 方法。如果您的目标是 Flash Player 9,您将无法使用此方法,而必须使用 unload()。请注意,unload() 需要额外的手动工作以确保正确卸载所有内容。

引用链接:

虽然 Loader.unload 删除了 Loader 对象的子对象,但卸载的对象仍将在后台运行,直到它被垃圾收集器实际处理掉。由于垃圾收集器不会处理所引用的对象,因此“卸载”的内容可能永远不会被删除(例如,事件侦听器可以引用该对象)。

【讨论】:

谢谢,这行得通,但遇到了与下面解释的相同的问题 - “好的,所以在导航离开框架时卸载 swf 的工作,但不幸的是出现了另一个问题。当我导航回到那个框架,swf 不会像我需要的那样重新加载。似乎卸载程序否定了要求它加载 swf 的操作脚本?"

以上是关于退出框架时卸载 swf的主要内容,如果未能解决你的问题,请参考以下文章

android有没有能播放.swf的开源框架

第六章

第六章心得

MobFox iOS 框架,XIB 卸载时崩溃......我在这里做错了啥?

单击按钮退出框架时删除拖放对象

python各种库框架的安装和卸载