2012-12-15 33 views
0

我已经进行了搜索,无法应用任何我发现的代码来使其工作。在退出框架时卸载swf

我正在建立一个网站,导航到每个页面(框架)将加载一个外部swf的内容。理想情况下,当我离开框架时,我想要卸载内容,以便可以加载新的swf。
这里是我用于加载SWF AS3:

VAR的SWFLoader:装载机=新的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:事件):无效{

跟踪( “文件中加载”);

}

回答

0

只需使用:

swfLoader.unload(); 

卸载瑞士法郎。

+0

该特定位代码坐哪里? – bjurtown

+0

在离开框架导航的事件处理程序中。 –

+0

没问题,所以在离开框架导航时卸载了swf,但不幸的是出现了另一个问题。当我回到那个框架,瑞士法郎不会重新加载,就像我需要它。卸载程序似乎否定了要求它加载swf的操作脚本? – bjurtown

0

卸载外部swf最安全的方法是使用装载程序的unloadAndStop方法。如果您的目标是Flash Player 9 tho,则无法使用此方法,而必须使用unload()。请注意0​​需要额外的手动工作,以确保一切都正常卸载。

引述链接:

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

+0

谢谢,这很有效,但遇到了同样的问题,如下所述 - “好的,这样就可以在从框架导航的时候卸载swf,但不幸的是会出现另一个问题,当我回到那个框架时,swf不会重新加载,就像我需要的那样。操作脚本要求它加载swf?“ – bjurtown