为啥我的第二个加载的子应用程序在 FlexEvent.INITIALIZE 之后停止
Posted
技术标签:
【中文标题】为啥我的第二个加载的子应用程序在 FlexEvent.INITIALIZE 之后停止【英文标题】:Why does my second loaded subapp stop after FlexEvent.INITIALIZE为什么我的第二个加载的子应用程序在 FlexEvent.INITIALIZE 之后停止 【发布时间】:2012-12-04 16:09:45 【问题描述】:我有一个 Flex 4 应用程序,它使用 mx.controls.SWFLoader 组件将 Flex 4 应用程序加载到其中。我多次加载相同的 swf-subapp,因为每个子应用也独立运行,并且子应用的内容由我通过加载器上下文传递给它的 XML 确定。
这一直有效,直到最近,但现在,我第二次加载相同的 swf(使用不同的 xml)时,加载的 swf 在触发 FlexEvent.INITIALIZE 后停止执行任何操作(我在初始化事件中没有做任何事情处理程序)。换句话说,我没有收到 CreationComplete 事件,这是我开始我的代码的地方(更糟糕的是,也没有错误)。
由于我一直在处理我的主应用程序的不同部分,我不太记得是哪个更改使我的项目崩溃了,但我确实记得我更新了我的 Flex SDK 并且我遇到了类似的静默错误与之前的 SDK 升级有关。
在我的主应用程序中,我会在加载新的 swf 之前自己进行清理,所以它不应该是垃圾。
请帮忙!
【问题讨论】:
您最近是否更改了您正在使用的 Flash 播放器的版本? 不。和我开始项目时一样。 能否请您发布一些重现此行为的代码(如果您决定发布示例或将其复制到大型项目中可能会有所帮助,也可以编写它)?你的 sdk 和播放器版本是什么? 【参考方案1】:解决了。
有一个 enterframe 处理程序将 swf 的第一个实例保存在内存中,以某种方式阻止了下一个实例的加载(尽管我在父容器上使用了 removeAllElements 并希望可以解决问题)。
现在我使用 NativeSignal 并从 onRemove 处理程序 (RobotLegs) 上删除所有侦听器。像魅力一样工作。
【讨论】:
以上是关于为啥我的第二个加载的子应用程序在 FlexEvent.INITIALIZE 之后停止的主要内容,如果未能解决你的问题,请参考以下文章