Flex:Module里包含TabNavigator时,卸载再加载时出现错误
2010-09-15 22:17
260 查看
在Module里包含TabNavigator时,卸载再加载会出现错误,这是因为Module的共享代码问题,当Moduel中使用Managers(如PopUpManager、DragManager,HistoryManager)时,容易出现这个问题,Manager的方法都是静态方法,整个应用程序中创建了一个该Manager接口的单列Singleton,但Module仅在自己的Application domain中使用该Singleton,当多个Moduel使用同一个Singleton且Mian Application没有使用是,就会出现这个空对象引用的问题:首先引入某Manager的Module不能将该Manager接口的Singleton跟其他Module共享,其他Module调用该Manager的方法时,应用程序不会再创建该Manager接口的实例,这个Module就无法引用到该Manager接口的实例,就出现了空对象引用问题。
默认情况下,Accordion和TabNavigator的 historyManagementEnabled =true;而ViewStack的historyManagementEnabled = false; 所以使用TabNavigator和Accordion时要注意HistoryManager的共享代码问题。另,仅一个Module使用HistoryManager时,卸载之后又加载该Module也会出现该问题,说明第二次加载时相当于一个新的module了。
解决方法:
在Main Application 中引入相关Manager,可以通过在Main Application中申明Manager的引用即可,如:
import mx.managers.HistoryManager;
var historyManager:HistoryManager;
默认情况下,Accordion和TabNavigator的 historyManagementEnabled =true;而ViewStack的historyManagementEnabled = false; 所以使用TabNavigator和Accordion时要注意HistoryManager的共享代码问题。另,仅一个Module使用HistoryManager时,卸载之后又加载该Module也会出现该问题,说明第二次加载时相当于一个新的module了。
解决方法:
在Main Application 中引入相关Manager,可以通过在Main Application中申明Manager的引用即可,如:
import mx.managers.HistoryManager;
var historyManager:HistoryManager;
相关文章推荐
- Flex加载多个Module时出现“TypeError: Error #1034: 强制转换类型失败”错误
- 卸载oracle9i后,再次安装时出现"加载数据库错误areasQueries"错误的解决办法(简单版)
- 加载flash9.ocx出现错误的解决方法
- 卸载postpersql后重装不了,出现错误,如何解决
- Flex4的导航容器TabNavigator
- ssh框架,包含webservice,发布到weblogic10出现错误的解决方法
- 优酷首页出现“此网页包含过多的循环重定向”错误的解决办法
- Xcode出现could not build module foundation错误 解决方案
- 卸载myeclipse5.5时出现"载入java VM时windows出现错误3"
- Ubuntu16.04上启动Spyder出现错误AttributeError: 'module' object has no attribute '_base'
- 模块加载进去之后,卸载时出现“ ERROR:Module xxxx(模块名) is in use”?
- 由vs 2005升级到vs 2008后,运行时出现错误:未能加载文件或程序集“System.Web.Extensions, Version=2.0.0.0, 怎么办?
- 当用webBrowser1加载网页的时候,网页中出现js错误,会弹出一个提示,如何屏蔽不提示
- oracle安装时出现"加载数据库错误areasQueries"错误的解决办法
- Qt5.x 编译QWebenginewidgets出现错误Project ERROR: Unknown module(s) in QT: webenginewidgets
- .../Temp....中出现内部错误,无法加载安装指令,错误703
- 浏览页面提示500内部错误,,事件查看器中出现:服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'。错误是 '没有注册类别'
- flex动态加载module
- ThinkPHP出现“无法加载模块”错误