`
michaeltangbin
  • 浏览: 271775 次
  • 性别: Icon_minigender_1
  • 来自: 黑龙江省
社区版块
存档分类
最新评论

加载多个module,使用PopUpManager问题解决方案

阅读更多
需求背景
通过树形菜单加载多个不同的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范围内没有使用到的"木偶变量",从代码可读性上来说不是很好。有其他比较好的解决方案的同学麻烦请告之下,:)


分享到:
评论

相关推荐

    FLEX关于TIMER控件和POPUPMANAGER弹出框的例子

    有代码,可以改变datagrid的每行的颜色,popupManager的移动和消失效果

    flex PopUpManager使用说明

    在深入讲解`PopUpManager`的使用方法之前,我们先来理解它的核心概念。 1. **PopUpManager的主要功能**: - **创建弹出窗口**:你可以使用`createPopUp()`方法创建一个新的弹出窗口组件,例如`TitleWindow`。`...

    CSASPNETShowSpinnerImage

    另一个同名文件"CSASPNETShowSpinnerImage"可能是项目的主要源代码文件,可能包含了具体的Ajax控件使用示例以及与PopupManager和加载指示器相关的逻辑。 总的来说,"CSASPNETShowSpinnerImage"项目提供了一种优雅的...

    FLEX问题总汇 (总结篇)

    在本文中,我们将深入探讨关于FLEX的一系列常见问题及其解答,这些问题涵盖了FLEX与HTML的集成、系统资源访问、文件...以上就是关于FLEX的常见问题及解决方案的详细总结,希望能帮助初学者更好地理解和掌握Flex开发。

    谈页面跳转的路由技术

    解决这个问题的方法是在Application中导入对应的Manager,并实例化它们,确保在加载Module之前这些Manager已经准备好。 路由技术的应用不仅简化了代码,提高了代码的可读性和可维护性,还有助于实现松散耦合的组件...

    Flex TileList图片展示(相册)

    可以使用延迟加载(懒加载)策略,只在需要时加载图片,以减少初始加载时间。 10. **测试和调试**: - 在开发过程中,需要进行多轮测试,确保所有图片能正确显示,同时检查性能瓶颈并进行相应的优化。 以上就是...

    为netbeans的文本组件添加右键菜单功能的插件

    这个插件可能包括多个动作,如“查找和替换”,“剪切”,“复制”,“粘贴”等,根据实际需求进行定制。记得在编写代码时遵循良好的编程实践,确保代码的可读性和可维护性。 在提供的`TextPopupMenu`压缩包中,...

    Cocos Creator 2.0 + 弹窗面板管理

    5. **栈管理**:为了支持多个弹窗的堆叠,管理器可能会维护一个弹窗栈,使得弹窗可以按照后进先出(LIFO)的顺序显示和关闭。 接下来是`popupBase.ts`文件,这通常是所有弹窗面板的基类。基类的作用是为所有弹窗...

    FLEX常见问题总汇

    在使用Adobe Flex开发应用程序时,可能会遇到各种各样的问题。Flex是一种基于ActionScript 3.0的开源框架,用于构建富互联网应用(RIA)。以下是一些常见问题的解答: 1. **Flex与HTML的集成**:Flex是可以嵌入HTML...

    Flex开发总结

    例如,对popupmanager的封装可以方便地添加特效,而无需在多个地方修改代码。设计模式的学习对提升设计质量非常有益。 10. **深入理解Flex核心**:掌握Flex的事件机制、异步处理、组件设计和生命周期、数据绑定等...

    Flex 弹出窗口的数据传输

    在这个过程中,涉及的关键知识点包括:Flex组件(如`List`和自定义窗口),数据绑定,XML解析,事件处理,以及`PopUpManager`的使用。通过深入理解这些概念,可以有效地实现Flex应用中的弹出窗口和数据传输功能。

    Flex 弹出窗口代码

    在Flex编程中,"弹出窗口代码"是一个常见的需求,特别是在设计用户交互界面时,我们经常需要实现点击按钮后打开一个新的窗口或者对话框来展示更多信息或进行特定操作。本篇将详细讲解如何在Flex中创建一个点击按钮后...

    做flex项目的小技巧

    ### 做Flex项目的小技巧详解 #### 一、弹出新窗口 ...这些技巧涵盖了Flex开发中的常见问题,包括弹出窗口、多视图切换、服务器交互、数据处理等方面,对于提升Flex应用程序的质量和性能具有重要意义。

    EGER-leishe:egret雷蛇小游戏 by egret 1.5.0 & EGER 0.1.5

    HTML5游戏极速开发解决方案 ###近期版本更新内容,请查看发布文档 一、【解耦】方便管理 1、使用全局派发事件:Global.dispatchEvent(MainNotify.openGamePanelNotify,null,false); Global.dispatchEvent(MainNotify...

    赵新 - HTML5游戏极速开发框架Eger

    赵新提出这些问题后,通过Eger框架给出了相应的解决方案。 ### 如何搭建一个框架? 赵新在演讲中介绍了框架的构建方法: 1. **针对代码耦合**:通过面板管理(PanelManager)、场景管理(GameScene)、弹窗管理...

    Flex--主程序与弹出窗口之间传递数据

    在Flex中,应用通常包含一个主程序(通常是Application类的实例),以及可能的多个弹出窗口(如PopUpManager创建的弹出层或WindowedApplication)。这些组件形成了一个层次结构,允许父组件与子组件之间进行通信。 ...

    flex 自动弹出窗口(右下角弹出,右上角弹出)

    在Flex中实现自动弹出窗口,我们通常会使用`PopUpManager`类,这是一个核心的Flex组件,用于管理屏幕上的浮动组件。 **1. 右下角弹出窗口** 要实现在屏幕右下角弹出窗口,我们需要做以下几步: - 创建弹出窗口...

    Flex打开新窗口将主窗口数据传给子窗口然后返回

    在本例中,作者描述了他在实现打开新窗口并将数据从主窗口传递给子窗口,然后子窗口关闭并返回主窗口的需求过程中遇到的问题和解决方案。他的初始实现方法是打开子窗口后,立即隐藏主窗口,但是这种方法在返回主窗口...

    HTML5游戏极速开发框架Eger.pdf

    Eger框架包括了多个核心组件,如PanelManager用于面板管理,GameScene用于场景管理,PopUpManager处理弹窗,TipsManager负责提示信息,以及EffectUtils用于特效制作。此外,Eger还提供了源码导出、资源明细和概览、...

    data-collection-android:一个开放源代码示例应用程序,演示了如何使用ArcGIS Platform for Android来使用ArcGIS平台在线和离线收集要素和相关记录-android source online

    移动数据收集利用了Runtime SDK的多个方面,包括: 识别地图特征 使用OAuth 2.0进行门户身份验证 使用功能,弹出窗口和PopupManager 详细文件 阅读以获取有关该应用程序的详细说明,包括其体系结构及其如何利用...

Global site tag (gtag.js) - Google Analytics