需求背景:
通过树形菜单加载多个不同的module。
问题现象:module页面存在拖动,Popup,Alert或者colorpicker出现错误信息:
TypeError: Error #1034: 强制转换类型失败:无法将 mx.managers::PopUpManagerImpl@7155ac1 转换为 mx.managers.IPopUpManager。
解决方案:
在Application加入如下代码引用:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--> <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接口的实例,就出现了空对象引用问题.
参考资料:Flex sdk源码。
目前在Application创建了些Application范围内没有使用到的"木偶变量",从代码可读性上来说不是很好。有其他比较好的解决方案的同学麻烦请告之下,:)
分享到:
相关推荐
有代码,可以改变datagrid的每行的颜色,popupManager的移动和消失效果
PopUpManager在产生TitleWindow时应记录当前的TitleWindow,目前只能通过1)获取
HTML5游戏极速开发解决方案 ###近期版本更新内容,请查看发布文档 一、【解耦】方便管理 1、使用全局派发事件:Global.dispatchEvent(MainNotify.openGamePanelNotify,null,false); Global.dispatchEvent(MainNotify...
移动数据收集利用了Runtime SDK的多个方面,包括: 识别地图特征 使用OAuth 2.0进行门户身份验证 使用功能,弹出窗口和PopupManager 详细文件 阅读以获取有关该应用程序的详细说明,包括其体系结构及其如何利用...
第10章 PopUpManager与ToolTipManager 第11章 Form组件与基本表单元素 第12章 文本、图像与多媒体 第13章 容器与导航 第14章 数据容器组件 第15章 图表组件 第16章 专题知识 第4篇 性能优化篇 第17章 ...
1.标签菜单使用PopUpManager方式弹出,方便关闭,监听FlexMouseEvent.MOUSE_DOWN_OUTSIDE就可以了。 2.弹出时候超出可视范围自动调整位置。 预览地址:http://www.zuidaima.com/share/1749734204492800.htm
弹窗置顶层与IEventDispatcher接口传值 1.初始化时使用实例了swc中的对象,调用了swc中的公开...2.弹出窗体popupManager方法的使用,弹窗类继承自定义接口,以及置顶窗体的设置 3.在popupManager弹窗时,给弹窗接口传值
这个例子展示了如何利用Flex的TileList控件,Image控件和PopUpManager类来创建一个简单的图片展示(相册)。
弹窗面板管理
c#写的.NET 类库 (Utility.dll) ... PopupManager.setBeginingPosition(2, this.DesktopLocation.Y+this.Size.Height); PopupManager.doPopup("友情提示", "当前时间"+DateTime.Now.ToString()); } } }
var stu_win:student=student(PopUpManager.createPopUp(this,student,true)); PopUpManager.centerPopUp(stu_win);
模仿Flex中的PopUpManager类写的一个应用于AIR中的弹出窗口管理类,包含完整的FlashBuilder4.6测试项目。 存在问题: 1、修改舞台尺寸后,生成的遮罩可能无法正确的覆盖整个舞台 2、主窗口的关闭、最大化、最小化...
通过remoteobject连接后台语言,通过popupmanager弹出UI,CSS嵌入外部字体,AS3操作XML,AS应用Effect,AS3自定义HashMap,分页控件,tooltip提示组件
弹框管理使用 在弹框之前初始化 PopupManager.instance.init(); 将弹框制作成prefab,并挂在继承PopupBase的PopupBase组件 /** * 是否设置点击拦截 */ @property(CCBoolean) blockInput: boolean = true; /** ...
使用Ajax控件处理大数据处理和计算造成的页面假死,非常简单,容易复用。