加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

FLEX模块化开发

发布时间:2020-12-15 01:08:56 所属栏目:百科 来源:网络整理
导读:? 1. 模块化的定义与原理 1.1 模块化的定义 ??? ? 模块是包含了一个IFlexModuleFactory类工厂的可动态加载的特殊类型的swf,它允许一个程序在运行时加载代码并创建类实例 。? 1.2 模块化的原理 ??? Flex应用程序是以swf形式发布的。Swf形式的文件分为两种类
?

1. 模块化的定义与原理

1.1 模块化的定义

??? ?模块是包含了一个IFlexModuleFactory类工厂的可动态加载的特殊类型的swf,它允许一个程序在运行时加载代码并创建类实例。?

1.2 模块化的原理

??? Flex应用程序是以swf形式发布的。Swf形式的文件分为两种类型,如下表所示:

?

类型

特征

特点

Application

最外层容器以<s:Application…>开头

可以单独执行

Module

最外层容器以<mx:Module…>开头

不可以单独执行,必须被ModuleLoader组件加载后才能执行

???

? 在完全采用Flex作为客户端技术的web系统中,由上述的Application和Module构成全部界面。

2 模块化的作用

1) Flex模块化可分离应用程序代码到不同的swf文件上以减少加载时间和文件大小。

2) 多界面效果

???? 在Flex技术中,通过模块化实现多界面效果,每个界面对应一个Flex模块。通常需要定义一个Application类型的界面作为主界面,在其上定义子界面的容器(ModuleLoader组件)。然后定义多个Module类型的子界面,在主界面的ModuleLoader组件中,动态加载Module类型的子界面以实现多界面切换。

3?模块化的优点

使用模块化开发有如下优点:

1. 主应用程序开始时不需要马上下载模块,应用程序会根据需求载入和卸载模块。

2. 由于每个模块独立于其他应用程序模块,当需要改变一个模块时,只需要重编译这个模块而不是整个应用程序。

4?技术要点

4.1 创建Flex模块

??1?基于mxml的模块

? 在你的项目右键->新建->MXML模块

? 代码如下:

<?xml version="1.0" encoding="utf-8"?>

<mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009"

??????? ?? xmlns:s="library://ns.adobe.com/flex/spark"

??????? ?? xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" width="400" height="300">

??? <fx:Declarations>

??????? <!-- 将非可视元素(例如服务、值对象)放在此处 -->

??? </fx:Declarations>

</mx:Module>

??2? 基于As的模块

代码如下:

import mx.modules.Module;

public class G extends Module

{

Super();

}

4.1 加载Flex模块

? 1 使用ModuleLoader加载:

<mx:ModuleLoader x="198" y="84" width="300" height="300" url=”Contact.swf”>

??2 使用ModuleManager加载:?

??

代码如下:

?????? import mx.modules.IModuleInfo;

??????? import mx.modules.ModuleManager

????????? private function creationHandler():void

??????????? {

??????????????? ?var _moduleInfo:IModuleInfo;

??????????????? _moduleInfo=ModuleManager.getModule("Module2.swf");

??????????????? _moduleInfo.load();

??????????? }

5?模块化与运行时共享库的比较

???? 运行时共享库Runtime shared libraries (RSLs) 是可被下载并缓存到客户端的一些文件。当 RSL 被下载存留在客户端后,其他应用程序就可以访问缓存的 RSL 资源了。应用程序载入两种 RSLs :未签名和签名的。

??? 未签名的 RSLs ,比如标准的和跨域的 SWF 文件,存储在浏览器缓存里。签名的 RSLs ,这是经过 Adobe 签名过的,扩展名为 .swz ,存储在 Flash Player 缓存中。正如其名, RSL 被称作动态链接库,在运行时被载入。静态链接库是 SWC 文件,通过编译 器的library-path 和 include-libraries 编译进应用程序。采用静态链接的应用程序 SWF 会产生比较大的文件以及更长的下载时间。使用 RSLs 的应用程序载入时间短且文件比较小,而且提 高了内存使用效率,只是在开始需要花点时间下载 RSLs 。 RSLs 的强大体现在多个应用程序共享公共代码时,因为 RSLs 只需要被下载一次,多个应用程序动态链接到相同的 RSL ,访问其中已经缓存在客户端的资源。虽然 RSLs 的巨大优点是缓存到客户端,但是它并不考虑库中的哪些类被真正用到,就把整个 RSL 库都下载来。

??? Modules 和 RSL 类似,只不过提供了另外一个方法分离应用程序代码到不同的 swf 文件上以 便减少下载时间和文件大小。使用 Modules 的好处是,它不像 RSLs ,主应用程序开始时不需 马上下载 modules 。应用程序会根据需求载入和卸载 modules 。使用 modules 的开发进程中还有个好处:由于每个 modules 独立于其他应用程序 modules ,当需要改变一个 modules 时,你只需要重编译这个 modules 而不是整个应用程序。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读