在flex中卸载模块事件处理

时间:2010-10-13 07:21:56

标签: flex actionscript-3 event-handling air

我正在开发一个AIR应用程序。在主应用程序中,我有一个模块加载器'mainModuleLoader'。我使用<mx:Module>标记将模块创建为单独的mxml文件。我正在使用actionscript动态加载mainModuleLoader中的这样一个模块。一切正常。

对于我作为mxml文件创建的模块,我想知道如何添加卸载事件处理程序。因此,每当我调用mainModuleLoader.unload()时,都会从module.mxml内部触发unload事件处理程序。我试过以下但没有成功。

<mx:Module creatingComplete="init()" unload="unloadHandler()"/>
<mx:Module creatingComplete="init()" remove="unloadHandler()"/>

上面第二个语句的问题是,即使在模块中删除了某个子节点,它也会触发unloadHandler。我还尝试在动作脚本中添加以下内容。

private function init()
{
  this.addEventListener(ModuleEvent.UNLOAD, unloadHandler);
}

但是,它不会在卸载模块时触发。如果我在某个地方出错或者是否有任何其他方法来附加事件处理程序,请告诉我。 谢谢!

2 个答案:

答案 0 :(得分:1)

你与删除是分开的;在开始工作之前,只需检查event.target是否为模块。那时它会忽略其他的。

答案 1 :(得分:0)

我认为您必须处理unload的{​​{1}}事件:

mainModuleLoader
相关问题