Actionscript 3来自另一个/ root SWF的调用函数

时间:2015-06-06 05:25:59

标签: actionscript-3 flash actionscript flash-cs6

所以我有'home.swf'和'play.swf' 当我运行应用程序时,我首先打开home.swf。

在home.swf上有按钮播放..

//home.swf
btnPlay.addEventListener(MouseEvent.CLICK, pickPlay);
function pickPlay(event:MouseEvent):void
{
    var loader:Loader = new Loader();
    var SWFRequest:URLRequest = new URLRequest("play.swf");
    loader.load(SWFRequest);
    addChild(loader);
}

在play.swf上有一个回到家的按钮

//play.swf
btnHome.addEventListener(MouseEvent.CLICK, clickHome);
function clickHome(event:MouseEvent):void
{
    var loader:Loader = new Loader();
    var SWFRequest:URLRequest = new URLRequest("home.swf");
    loader.load(SWFRequest);
    addChild(loader);
}

问题是..当我经常跑这么多次......比如玩和回到家里,再玩一次...... 应用程序将滞后。因为它就像我只是装载回家并一次又一次地玩,但是没有卸载它......

现在我需要卸载它但有人告诉我make main.swf加载和卸载.. 所以第一次运行main.swf时首先调用home.swf ... 当我们点击播放时.. main.swf将卸载home.swf并加载play.swf

任何解决方案? 我希望你能明白我的意思:)。

1 个答案:

答案 0 :(得分:0)

您的Loader由函数中的局部变量引用。这使得以后很难引用它。

将您的代码更改为以下内容:

CHECK TABLE table_name;
REPAIR TABLE table_name;

这样做的最简单方法是将"放回家"在家里的按钮。如果可以从视觉效果中进行,请考虑将此按钮放入play.swf

如果你想把按钮放到play.swf中,你最好的选择是在按下按钮时在play.swf中发送一个事件。您在home.swf中侦听事件并在发生时卸载该文件。

无论你触发它,加载器都提供了两种卸载内容的方法:unload()unloadAndStop() 你想调用其中一个来摆脱加载的文件。