<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
<mx:Script>
<![CDATA[
import mx.events.ModuleEvent;
import mx.modules.ModuleManager;
import mx.modules.IModuleInfo;
import mx.modules.Module;
public var info:IModuleInfo;
private function addMod():void
{
info=ModuleManager.getModule("MyModule.swf");
info.addEventListener(ModuleEvent.READY, modEventHandler);
info.load();
}
private function modEventHandler(e:ModuleEvent):void
{
// Add an instance of the module's class to the
// display list.;
panel.addChild(info.factory.create() as Module);
}
]]>
</mx:Script>
<mx:Panel id="panel">
<mx:Button x="918"
y="499"
label="Add Module"
click="addMod()"/>
</mx:Panel>
</mx:Application>
Flex使用Module技术不但实现组件间的松耦合,而且减少单个swf文件大小。可是Flex Builder3中自带帮助Advanced Flex Programming / Creating Modular Applications 中给出的ModuleManager加载例子有误不能起到减少swf的作用,这里对该代码进行下修改。
原先例子中as的类型就是我们自己定义的ModuleTest类本身,这就造成了主swf对MyModule的引用!编译时主swf就会将MyModule.mxml一同链进去,从而增加了主swf的大小,这是我们不愿意看到的。
panel.addChild(info.factory.create() as MyModule);
解决方法使用MyModule的父类Module作为对象实例化的类型,这里可以当做是使用接口进行实例化。这样主swf文件大小就会减少。
分享到:
相关推荐
在Flex3中,客户端缓存是指将应用程序的部分或全部组件存储在用户的本地缓存中,以便在下次访问时可以更快地加载。这种机制减少了网络延迟,因为不是每次都从服务器重新下载所有的资源,而是优先从本地缓存中读取。...
5. **DEMO实践**:“这是一个DEMO”表明可能存在一个示例应用,演示了如何在Flex中实现Module的客户端缓存。通常,DEMO会包含代码示例、步骤说明以及可能的使用场景,帮助开发者理解并应用这些概念。 6. **`...
在Flex中,创建模块的过程大致如下: 1. **创建模块项目**:在Flash Builder或Flex Builder中新建一个模块项目,选择适当的Flex框架版本和编译器设置。 2. **编写模块代码**:在模块项目中,我们可以编写...
在Flex中,一个模块是一个可以独立编译和加载的SWF文件,它可以在运行时动态插入到主应用程序中。模块化设计使开发者能够将应用拆分为更小、更专注的功能单元,每个单元都可以单独开发和测试。 要实现Flex模块间的...
在Flex中,模块是SWF文件,可以包含用户界面组件、业务逻辑和服务。通过将应用程序的不同部分封装到单独的模块中,我们可以按需加载和卸载它们,从而减少启动时间和内存占用。 2. **模块的优点**: - **代码组织*...
在FlexBuilder中设置MXML编译器选项 1.5节.在FlexBuilder外部编译Flex项目 1.6节.在MXML中添加事件监听器 1.7节.设置子节点属性 1.8节.定义数组和对象 1.9节.在ActionScript中设置变量的作用域 1.10节.在...
而modulemanager则是Laravel生态中的一个重要工具,它为开发者提供了对项目中模块化结构的有效管理和维护。 首先,我们来理解一下模块化的概念。在大型项目中,将功能分解成独立的模块有助于提高代码的可维护性和可...
模块在Flex中是指一组相关的组件、服务或功能,它们被封装在一个单独的SWF文件中,可以在运行时动态加载和卸载。这样,开发者可以将一个大的应用程序拆分成多个模块,每个模块专注于特定的功能区域。 2. **模块的...
在主应用程序中,我们可以使用`mx.modules.ModuleManager`类来加载模块。通过调用`loadModule()`方法,并提供模块的URL和加载完成后的回调函数,可以实现动态加载。例如: ```actionscript var moduleLoader:...
管理者在Flex中扮演着协调和控制的角色。例如,SystemManager是应用程序的起点,负责启动过程;StyleManager处理CSS样式和皮肤应用;DragManager使拖放操作成为可能,初学者应至少掌握处理拖放事件的基础;...
您希望应用程序在启动时加载特定版本的应用程序,而不必始终在服务器上配置要加载的版本。 最重要的方法是: ModuleManager.prototype.setModules(Array modules); 这将设置将使用的可用模块列表。 这是可供使用...
管理者在Flex中扮演着协调和控制的角色,例如SystemManager是应用程序的起点,负责初始化流程;StyleManager管理CSS样式和皮肤应用;DragManager使拖放操作成为可能,学习其事件处理和实现细节可以提升交互体验;...
HumusMvc在ZF1应用程序中集成了Zend Framework 2的ModuleManager和ServiceManager。 还有一个 。 将不再使用Zend_Application。 依存关系 任何类似于应用程序 安装 通常,您将在HumusMvcSkeletonApplication中安装...
4. **加载模块**:在Shell初始化之后,可以通过模块管理器(ModuleManager)来加载应用程序所需的模块。 通过上述步骤,我们就可以创建一个基本的Shell并让它成为应用程序的主窗口。 #### 三、MVVM设计模式 MVVM...
例如,`ModuleManager`负责管理应用中的各个模块,允许模块化开发,每个模块可以有自己的独立配置、路由和视图。`ServiceManager`提供了一个服务定位器模式,用于管理和实例化应用中的服务对象,这有助于保持代码的...
《肖红UI框架2016(1-20)》是针对Unity游戏开发中UI框架的一系列教程,主要讲解了如何构建一个高效、可扩展的用户界面系统。本课程涵盖了多个关键知识点,包括资源管理、模块管理和消息传递机制。 在Unity引擎中,...
1. **安装**:通过Composer在Laravel项目中安装`modulemanager-module`,执行`composer require vendor/modulemanager-module`。 2. **配置**:在`config/app.php`中注册服务提供者和门面。 3. **创建模块**:使用...