为什么我的第二个加载的子应用程序在FlexEvent.INITIALIZE之后停止

时间:2012-12-17 14:43:10

标签: actionscript-3 flex4 mxml

我有一个Flex 4应用程序,它使用mx.controls.SWFLoader组件将Flex 4应用程序加载到其中。我加载相同的swf-subapp几次,因为每个subapp也独立运行,子应用程序的内容由我通过加载器上下文传递给它的XML确定。

直到最近才开始工作,但现在,第二次加载相同的swf(使用不同的xml)时,加载的swf在触发FlexEvent.INITIALIZE后停止执行任何操作(我在初始化事件中没有做任何事情)处理程序)。换句话说,我没有得到CreationComplete事件,这是我启动代码的地方(更糟糕的是,没有错误)。

由于我一直在处理我的主要应用程序的不同部分,我不太清楚哪个更改导致我的项目崩溃,但我记得的是我更新了我的Flex SDK并且我有类似的无声错误与之前的SDK升级有关。

在我的主要应用程序中,我在装载新的swf之前自行清理,所以它不应该是垃圾堆放。

请帮忙!

1 个答案:

答案 0 :(得分:0)

解决了它。

有一个enterframe处理程序将swf的第一个实例保存在内存中,这在某种程度上阻止了下一个加载(尽管我在父容器上使用了removeAllElements,并希望这样做)。

现在我使用NativeSignal并从onRemove处理程序(RobotLegs)上删除所有侦听器。像魅力一样。