`
taomujian
  • 浏览: 109577 次
  • 性别: Icon_minigender_1
  • 来自: 安徽-合肥
社区版块
存档分类
最新评论

FLEX动态加载Model

    博客分类:
  • FLEX
阅读更多

         用FLEX来开发应用难免不了要使用到Module,FLEX组件提供了ModuleLoader组件,该组件使用方式类似与swfLoader,但是通常仅仅使用该组件并不能满足我们的需求,这时FLEX为我们提供了ModuleManager,可以实现动态的载入不同的模块。

 

module分为两种,一种是完整的,一种是关联到主程序的,在新建Module时可以选择module swf size

1.完整的module会将所有用到的引用编译进来因而比较大,这个一般会比较少用到。

2.关联到主程序的则不会将主程序的引用编译进来,因而会比较小,但是引用别的模块就不同了。

 

在使用FLEX模块时有几点需要注意的地方
1.module内不可以访问别的module的对象但是可以访问主程序的对象引用
2.不要在主程序中创建模块的引用,这样模块还是会被加载到主程序中,模块的意义也就没了。
3.module内的组件的初始化实在ModuleEvent.READY事件之后,所以不能在ModuleEvent.READY事件里直接访问module内的组件

 

为了在主程序中使用module对象来操作module内的一些行为,这时可以将module对象在主程序中转换成object类型,然后保存引用,或者让module实现一个接口,然后保存该接口的引用。

然而使用object类型无法知道内部公开的方法,但使用接口就没有此问题

 

在使用FLEX提供的动态的载入module功能时我们需要用到一下3个类
 ModuleManager,IModuleInfo,ModuleEvent
      ModuleManager 内有一个管理各个module的map,ModuleManager 在加载module之前会判断他是否已经存在,如果存在则不会再次加载通过ModuleManager.getModule(URL)方法我们可与获取到ModuleManager的内部类ModuleInfoProxy的对象,ModuleInfoProxy实现了IModuleInfo接口,因此我们可以通过IModuleInfo接口来保存ModuleInfoProxy内部类的对象对象进行系列的操作。


有关ModuleManager,IModuleInfo,ModuleEvent的详细信息见帮助文档。

 

如何动态的载入module:
 1.通过ModuleManager.getModule(URL)获取与特定 URL 关联的 IModuleInfo 接口。
_moduleInfo=ModuleManager.getModule("com/myMusic/nominateMusicModule/NominateMusic.swf");
 2.为加载module的各个过程添加事件监听
 _moduleInfo.addEventListener(ModuleEvent.READY, onModuleReady);
 _moduleInfo.addEventListener(ModuleEvent.SETUP, onModuleSetup);
 _moduleInfo.addEventListener(ModuleEvent.UNLOAD, onModuleUnload);
 _moduleInfo.addEventListener(ModuleEvent.PROGRESS, onModuleProgress);
 3.调用loader方法执行加载动作
 _moduleInfo.load(); //加载Module


废话太多,还是看例子吧(根据老外的一个例子改的)
 
 

分享到:
评论
5 楼 lzy83925 2011-10-20  
爱死你了楼主
4 楼 风过有声 2011-01-14  
正好用到 感谢
3 楼 kinglo 2010-09-14  
谢谢分享!
2 楼 lyf_wx 2009-03-30  
不错。赞一个!
1 楼 avanry 2009-03-14  
写的很好啊!给我很大帮助....
希望多出点好文章

相关推荐

    Vue自定义日期输入框组件.zip

    实现思路 1、显示部分为一个输入框和一个下拉选择按钮,父级是一个div容器,采用 display:flex;justify-content: space-between;让两端靠边对齐 2、下拉选择按钮用css画一个向下的...5、用v-model实现数据双向绑定

    flexmojos-compatible-model-validator

    FlexMojos 兼容模型验证器。 FlexMojos 提供了 6 个范围用作依赖项的链接: ... 仅与 Flex 和 AIR 应用程序(不是 SWC 或 ActionScript 3 项目)相关,这可确保 SWF 引用的库将在运行时一次加载到用户的 Fl

    UCenter1.6头像上传破解版源码(uc_camera_v1.0)

    mx flex的mx类库 org AS3GIF类库和PureMVC框架 2.服务端源码文件包括: avatar.php 上传处理以保存到Web服务器端 camera.swf flash动画客户端(浏览端执行) locale.xml 本地化语言(加载camera.swf时会从Web...

    FastWeedMapping

    2.1-使用脚本from_h5_to_frozen_graph.py加载.h5模型并将其进一步转换为flex_model 所有转换后的冻结图都将保存在“ ./Models/Frozen_graphs/*”中 重要说明:此处将原始资源转换为flex模型。 因此,导出的冻结图...

    最新AngularJS开发宝典视频教程 后盾网AngularJS培训视频教程 后盾网.txt

    ├最新AngularJS开发宝典—第021讲 ng-model-options设置数据同步时机提交网站性能.mp4 ├最新AngularJS开发宝典—第022讲 通过ng-class动态改变样式类实例操作.mp4 ├最新AngularJS开发宝典—第023讲 使用ng-style...

    P13_Blazor项目模板讲解ThreeBlazor2020_1_11.rar

    Blazor与Flex和silverlight有点像,Flex和silverlight有一些大厂反对,不支持flex和silverlight Blazor使用Web Assembly标准,Web Assembly是一种业界标准,所有浏览器都支持它,类似于Java字节码,各种语言都可以...

    好用的代码生成源码

    框架将各个零散的框架(struts,strust2,springmvc,hibernate,ibatis,spring_jdbc,flex)搭建好,并内置一个代码生成器,辅助项目开发,可以生成java的hibernat model,dao,manager,struts+struts2 action类,可以生成jsp...

    Maven权威指南 很精典的学习教程,比ANT更好用

    简单的项目对象模型 (Project Object Model) 3.5. 核心概念 3.5.1. Maven插件和目标 (Plugins and Goals) 3.5.2. Maven生命周期 (Lifecycle) 3.5.3. Maven坐标 (Coordinates) 3.5.4. Maven仓库(Repositories)...

    asp.net知识库

    ADO.NET 2.0 大批量数据操作和多个动态的结果集 ADO.NET 2.0 异步处理 在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+...

Global site tag (gtag.js) - Google Analytics