需求背景 :
通过树形菜单加载多个不同的module。
问题现象 :module页面存在拖动,Popup,Alert或者colorpicker出现错误信息:TypeError: Error #1034: 强制转换类型失败:无法将 mx.managers::PopUpManagerImpl@7155ac1 转换为mx.managers.IPopUpManager。
解决方案 :
在Application加入如下代码引用:
Java代码
1.import mx.managers.DragManager;
2.
3.import mx.managers.IPopUpManager;
4.
5./* Create dummy variables. */
6.
7.// 避免出现:无法将 mx.managers::PopUpManagerImpl@52a09a1 转换为 mx.managers.IPopUpManager 错误
8.
9.private var dragManager : DragManager;
10.
11.private var popUpManager : IPopUpManager;
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;
问题原因分析 :
属于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 Module间通信 此例给大家展示一个使用了模块(Module)的简单的Flex程序,你可以从中获得启示。
不要以为我要5分很高,这个绝对是官网资源,其中包含各位最一直在寻找却找不到即使找到也不好用的 flex-bootstrap-jsp.jar flex-bootstrap.jar flex-webtier-jsp.jar flex-webtier.jar
the Flex 3 compiler module for J2EE application servers.
在Flex工程中添加Module的方法是:在FlashBuilder中右键工程目录->Porperties->Flex Modules, 然后就可以add/edit/remove需要的module了, 但问题 是无论添加多少module都要点击add按钮一个一个添加! 像我们的项目一...
flex中moduleLoader动态加载module时传递参数源代码
FlexModule_j2ee Flex 与JSP 整合用的.jar 文件 Jsp 中引用Flex 标签
Flex基于Module模块的开发文档主要介绍涵盖基本所有: 1、模块化的定义与原理; 2、模块化的作用; 3、模块化的优点; 4、flex与模块通信,直接调用模块(module)方法及示例代码; 5、flex基本控件用法及示例代码;...
在动态加载module时,容易出错,这是因为加载以后需要卸载,请看示例代码,可运行。
在Flex3的Module模块程序设计中,在Google中进行了大量的资料查找,综合比较各个资源后,将我认为最有价值的资料放在这里(全英文的)。 下载包中包括: 1、Adobe Creating Mudule Application.pdf 2、相似例子的源...
实用flex日期控件,原创,适用开发人员使用datefeild控件去除不需要日期时适用
通过这个工程可以实现flex页面嵌入到jsp中。
Flex 上传多个文件的简单事例,希望对大家能有所帮助
java flex 对象定义 数据类型定义
避免Flex RSL重复load 提高module加载性能的swc
JSP嵌入一个或多个Flex例子 需要使用到FlexModule_j2ee
10多个FLex 3 的源码,包括 DataGrid弹出框添加数据,弹出框样式,日期选择器效果,图表 线状图 双线
包中的文件1.RadioTree,2.SingleRadioTree, 3.RadioTreeNode,4.RadioTreeRenderer,1为支持联表查询的单选树(已封装),第一张表查询的为非叶子节点,第...用户只要配置后台java参数即可,有问题联系QQ:845359787,小陈
flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图flex 地图...
loadrunner执行flex性能测试时,必备的引用包