如何在输入新的swf(AS3)时删除以前的swf ......?

时间:2010-12-14 03:35:27

标签: actionscript-3

当我从Main.swf加载到另一个swf示例到(B.swf)并重新加载回Main时,我创建了带有3个swf文件(main.swf,A.swf,B.swf)的双测验游戏。 swf再次,它完美没有错误...但当这个过程继续循环,它似乎垃圾邮件CPU内存使用...我应该用什么编码解决它? (**我猜是因为之前的swf文件的内存在进入另一个swf时没有完全删除,新的swf只是替换在顶部) (我使用.unload(),removeChild(),stop()等似乎没有解决这个问题..我确实尽力解决但失败了) 我认为必须有一些代码用来解决这个问题,我不知道还有什么呢。我能给你一点解决方案吗?

你的善意将非常感谢:) 感谢

1 个答案:

答案 0 :(得分:1)

您无需在循环中重新加载每个SWF!将变量分配给加载的SWF,并使用该变量与swf进行交互。

  private var swfA:MovieClip;

  private function onLoadComplete( event:Event ):void
  {
       //if you've loaded A.swf
       swfA = event.currentTarget.content;
  }

从那时起,您可以:

  //hide the swf
  swfA.visible = false;

  //remove it from stage
  removeChild( swfA );

如果您已将其链接到自己的类,您甚至可以调用方法或设置属性

  //for instance...
  swfA.answers = [ answer1 , answer2 .... , answern]; 
  swfA.showResult();