flex ModuleLoader ERROR记录
来源:互联网 发布:植物奶油 知乎 编辑:程序博客网 时间:2024/05/21 01:55
sdk3.2 下会有此问题.
项目中想用moduleLoader加载模块,达到模块化开发的目的.但是出现了共享变量的问题:
TypeError: Error #1034: 强制转换类型失败:无法将 Object@406e651 转换为 mx.messaging.messages.IMessage。
代码+上// import mx.managers.PopUpManager;
// private var popUpManager: PopUpManager
问题暂时消失.在网上查找原因:
需求背景:
通过树形菜单加载多个不同的module。
问题现象:module页面存在拖动,Popup,Alert或者colorpicker出现错误信息:
TypeError: Error #1034: 强制转换类型失败:无法将 mx.managers::PopUpManagerImpl@7155ac1 转换为 mx.managers.IPopUpManager。
解决方案:
在Application加入如下代码引用:
<mx:Script>
<![CDATA[
import mx.managers.DragManager;
import mx.managers.IPopUpManager;
/* Create dummy variables. */
//避免出现:无法将 mx.managers::PopUpManagerImpl@52a09a1 转换为 mx.managers.IPopUpManager 错误
private var dragManager : DragManager;
private var popUpManager : IPopUpManager;
//process....
]]>
</mx:Script>
问题原因分析:
属于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().
以上都是转别人的。
- flex ModuleLoader ERROR记录
- FLEX:multiple moduleloader occur #1034 error
- Flex中含有ModuleLoader的creationComplete事件顺序
- Flex ModuleLoader向Module(模块)传递参数实例
- Flex 使用ModuleLoader加载模块及卸载模块的实例
- Flex ModuleLoader和ModuleManager的区别、ModuleManager加载模块实例
- Flex 使用ModuleLoader加载模块及卸载模块的实例
- Flex ModuleLoader向Module(模块)传递参数实例
- 错误记录--Flex CreateProcess error=3
- Flex使用ModuleLoader请记住在主程序中加入以下代码
- FLEX ERROR
- ModuleLoader加载模块
- Flex4中ModuleLoader闪烁
- SWFLoader和ModuleLoader
- Flex Error #2032 Stream Error
- Flex Error Classes Poster
- flex error #2044 securityerror
- flex builder server error
- 大一下学期...怎么安排?
- Delphi下MSMQ(Mircosoft Message Queue)实例(私有队列)
- 2009中国城市GDP前100名及广东各市GDP(目前最准确)
- String编码转换
- Groovy Database features oracle
- flex ModuleLoader ERROR记录
- Amcharts--Chart with scroller
- ping 笔记
- Struts2 org.apache.commons.dbcp.BasicDataSource
- FTP基础知识
- IDEA数据加密算法
- 《红酒坊》DM杂志
- 2.21JAVA学习笔记
- access中case替代方法