`
cloud21
  • 浏览: 397598 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Flex中的模块 ModuleLoader 、ModuleManager

    博客分类:
  • Flex
阅读更多
ModuleLoader

Flex中的ModuleLoader组件为模块的载入提供和很方便的接口,它是高层的处理Module的API。

可以这种在flex中简单的使用module

<mx:ModuleLoader url="MXMLDemoModule.swf"/> 

也可以在编程时动态的改变URL,来加载不同的Module。

ModuleLoader其实是一种特殊的导航式容器。和一般导航式容器如ViewStack不同的是,ModuleLoader不必在初始化时携带加载所有的孩子组件。

另外,推荐在moduleloader做切换的时候,加上:moduleLoader.unloadModule再做moduleLoader.loadModule()。Flex确保调用load()方法只有一个对象。

ModuleManager

ModuleManager类提供了低层次的处理Module的装载卸载以及事件响应等的变成接口。这种方式比起纯粹的ModuleLoader方式稍微复杂一点,但是ModuleManager提供了比ModuleLoader更加强大的能力来管理Module模块的加载过程。

具体操作可以分成以下几步:

1.通过ModuleManager实例的getModule()方法拿到Module模块的一个索引,索引类型为IModuleInfo。 

2.调用这个索引的load()方法。 

3.利用这个接口的factory属性拿到它相关连的Module工厂,调用此工厂的create()方法,并将返回值强制转换成当前的Module类型。

private var module:IModuleInfo;   

       module = ModuleManager.getModule("UserList.swf");   

       module.addEventListener(ModuleEvent.READY,onModuleReadyUseModuleManager);  

       module.load();   

      private function onModuleReadyUseModuleManager(event:Event):void{     

                var me:ModuleEvent = event as ModuleEvent;     

                 userList = me.module.factory.create() as UserList;         

                container.addChild(userList);  

}  

在调用create()方法的时候,可以先不加入显示列表,这样就可以先将module载入内存,需要的时候再加入显示列表。

加载过程的事件

这个倒不是ModuleManager特有的,ModuleLoader也有,就是setup,ready,unload,progress,error等事件。

Progress事件

protected function onModuleProgress (e:ModuleEvent) : void {    
                trace ("ModuleEvent.PROGRESS received: " + e.bytesLoaded + " of " + e.bytesTotal + " loaded.");   
      } 
主要就是bytesLoaded和bytesTotal,分别表示已经加载的字节数和总共的字节数。
分享到:
评论

相关推荐

    Flex之模块化

    `mx:ModuleLoader`组件是Flex提供的一种UI组件,可以用来在应用程序中显示和管理模块。模块间的通信可通过事件监听、依赖注入或使用全局静态变量等方式实现。 5. **博文链接中的内容**: 博文链接指向的是作者...

    Flex模块化开发实例

    `ModuleManager`负责模块的加载和卸载,`ModuleLoader`负责显示和隐藏模块,而`ModuleContainer`可以容纳和布局多个模块。 8. **模块的最佳实践**: - **明确模块边界**:确保每个模块有清晰的责任划分。 - **...

    Flex Module间通信

    Flex模块间通信是Adobe Flex应用程序开发中的一个重要概念,它允许不同模块之间共享数据、功能和服务。在大型项目中,模块化设计有助于代码组织和管理,提高代码复用性,同时降低复杂度。本示例将深入讲解如何在Flex...

    flex module实例

    Flex模块(Flex Module)是Adobe Flex框架中的一个重要概念,它允许开发者将大型应用程序分解为多个独立的、可重用的组件,这些组件被称为模块。在Flex应用中,模块可以按需加载,从而优化应用程序的启动时间和内存...

    flex 客户端缓存

    2. **配置模块缓存**:在主应用程序中,设置`Application`或`ModuleManager`的`cacheManifest`属性,指定一个清单文件(cache.manifest)来定义哪些模块应该被缓存。 3. **清单文件**:清单文件是一个文本文件,列出...

    Flex添加Module .actionScriptProperties文件自动生成 在此文件中添加 <modules>

    6. **在主应用程序中加载模块**:在主应用程序中,我们需要使用`ModuleManager`类来加载和管理这些模块,以便在运行时动态地引入模块功能。 至于"test"这个文件,它可能是压缩包中的一个测试模块或相关配置文件,...

    Laravel开发-modulemanager

    而modulemanager则是Laravel生态中的一个重要工具,它为开发者提供了对项目中模块化结构的有效管理和维护。 首先,我们来理解一下模块化的概念。在大型项目中,将功能分解成独立的模块有助于提高代码的可维护性和可...

    Flex 加载 Module

    Flex加载Module是Adobe Flex框架中的一个关键特性,它允许开发者将大型应用程序分解为多个模块,每个模块都可以独立加载和卸载。这样的设计提高了应用程序的响应速度,降低了初始加载时间,并且使得用户能够在需要时...

    cairngorm框架module学习二

    在“Cairngorm框架module学习二”中,博主可能深入讲解了如何创建和管理模块,以及如何实现模块间的通信。可能涉及的具体内容包括: - 模块类的设计和配置 - 如何使用Cairngorm的`ModuleLoader`加载和卸载模块 - `...

    modulemanager-module:一个用于管理Laravel模块设置,状态等的模块

    在Laravel框架中,模块化是一种常见的组织代码结构的方式,它将应用的不同部分划分为独立的模块,便于维护和扩展。"modulemanager-module" 是专为Laravel设计的一个模块管理工具,它允许开发者更高效地管理和控制...

    flex3的cookbook书籍完整版dpf(包含目录)

    使用ModuleManager载入模块 22.9节.载入来自不同服务器的模块 22.10节.与模块通信 22.11节.使用查询字符串传递数据给模块 22.12节.使用连接报告优化模块 第二十三章.Adobe Integrated Runtime API(694) 23.1节.借助...

    MyProject.zipue4添加模块代码

    在UE4(Unreal Engine 4)开发过程中,添加自定义模块代码是扩展游戏功能、实现特定逻辑或优化性能的重要步骤。"MyProject.zipue4添加模块代码" 的标题表明这是一个关于如何在UE4项目中引入自定义源码模块的教程或者...

    想学习flex的,应该看看这个说明文档 好东西!

    ModuleManager管理模块化应用的加载;CursorManager则用于改变鼠标光标。对这些管理者的深入理解能提升Flex应用的性能和用户体验。 样式与皮肤是Flex的一大亮点,允许开发者创建高度定制的用户界面。CSS样式可以...

    ModuleManager

    #模块管理器 该插件旨在为插件带来一些排序功能以及各种功能,以帮助更轻松地管理不同版本的软件。 这样做的原因是基于某些参数进行应用程序升级。 看下面的情况。 您希望应用程序在启动时加载特定版本的应用程序...

    UE4 添加自定义module

    在UE4(Unreal Engine 4)开发过程中,有时我们需要为项目添加自定义模块(module),以便实现特定功能或扩展引擎的功能。自定义模块可以让我们更有效地组织代码,提高代码的可重用性和可维护性。以下是关于在UE4中...

    ModuleManager:用于组织 Terasology 模块的包管理器样式库项目

    这个库是功能性的,但仍在孵化中,API 可能会更改,恕不另行通知。 内容 该库使用访问 Terasology 模块存储库 (Maven2) 并读出其内容。 用法 要使用 ModuleManager,你可以这样写: RepositoryConnector connector...

    Actionscript该学的重点

    ModuleManager在大型项目中用于管理模块加载;CursorManager则用于控制鼠标光标显示。 总而言之,ActionScript的学习重点在于掌握基础语法、DisplayList和事件系统,深入理解Flex框架,特别是组件、管理者以及样式...

Global site tag (gtag.js) - Google Analytics