2

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

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

由于我一直在处理我的主应用程序的不同部分,我不太记得是哪个更改使我的项目崩溃了,但我记得的是我更新了我的 Flex SDK,并且我遇到了类似的静默错误较早的 SDK 升级。

在我的主应用程序中,我在加载新的 swf 之前自己进行了清理,所以它不应该是垃圾。

请帮忙!

4

1 回答 1

0

解决了。

有一个 enterframe 处理程序将 swf 的第一个实例保存在内存中,它以某种方式阻止了下一个实例的加载(尽管我在父容器上使用了 removeAllElements 并希望可以解决问题)。

现在我使用 NativeSignal 并从 onRemove 处理程序(RobotLegs)上删除所有侦听器。奇迹般有效。

于 2012-12-18T09:05:34.440 回答