`
liq39liq
  • 浏览: 14766 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

Flex加载多个Module时出现“TypeError: Error #1034: 强制转换类型失败”错误

 
阅读更多

Flex加载多个Module时出现“TypeError: Error #1034: 强制转换类型失败”错误
2010年06月13日
  使用Accodian加载不同Module时,使用combobox时切换选项时,出现错误TypeError: Error #1034: 强制转换类型失败
  出现这种错误的原因在于 ModuleLoader shared code problem 当Module中使用managers时(如PopUpManager,DragManager, HistoryManager等)则可能出现这个问题,
  当application里在loader之前没有引入这些manager的引用时,manager的方法是静态方法,整个应用程序中创建了一个该manager接口的singleton实例, 但module仅在自己的 Application domain中使用该单例, 当多个module使用同一个单例manager且main application没有使用时,就会出现这个空对象引用问题。第一个引入某manager的module不能将该manager接口的 singleton跟其他module共享,其他module调用该Manager的方法时,应用程序不会再创建该manager接口的实例,这个 module就无法引用到该manager接口的实例,就出现了空对象引用问题. 
  解决方法:在ModuleLoader 的creationComplete方法中加入如下代码: moduleLoader.applicationDomain = ApplicationDomain.currentDomain; 就可以在Application里切换多个module而不需要在Application里明文引用单例manager声明。
  另外,推荐在moduleloader做切换的时候,加上:moduleLoader.unloadModule再做moduleLoader.loadModule()。 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics