技术开发 频道

创建模块化应用程序

   【IT168技术分析】 

    创建模块化应用程序

    如果你没有看过Roger Gonzalez的Blog中关于模块(Module)的文章,那么你应该去那里了解一下Flex 2这个特性背后的细节和想法。这里我不想过多地探讨为什么要这样,而是想要给大家展示一个使用了模块(Module)的简单的Flex程序,你可以从中获得启示。

    模块(Modules)

    模块(Module)是创建大型Flex应用程序的一个解决方案,它允许你将你的用户接口分割成许多分散的有各自用途的小块。例如(下面出自Flex 2的文档),一个保险公司可能有数百个表单——针对于各个领域的,针对各种请求类型,以及针对各种应用等等。创建一个包含所有这些表单的Flex应用程序将会产生一个巨大SWF文件,还会有不少问题:

•应用程序越大开发过程越复杂;
•应用程序越大测试过程越复杂;
•应用程序越大部署过程越复杂;
•SWF文件越大加载时间越长

    我的示例程序基于Flex 2文档中的一个程序,但是我将它做了一些更改来说明几个常见的问题。这个例子展示了一个主程序和其它三个共享公有数据的模块(Module)。

    其中一个设计要素是一个接口的使用,这个接口实质上是接口实现者和使用者之间的一个契约。这个例子将会说明我所说的意思。模块(Module)的接口部分虽然不是必须的但是却可以大大简化以后的开发和维护。比如,如果开发人员有一个小组负责报告部分,另一个小组负责图表部分,如果它们一开始用了接口,那么只要有需要,接口的实现就可以做足够多的变形而不会影响到工程结果。接口在模块(Module)中还扮演另外一个角色,我在下文中将会揭示这点。

    模块(Module)是以<mx:Module>代替<mx:Application>作为根标签的MXML文件(或ActionScript文件)。你可以将带有<mx:Module>标签的作为一个程序来看,但是它不能运行。

    这个示例有一个主程序文件以及带有一个接口的两个模块。打开主程序文件你会看到:

程序代码
 

 <mx:Panel x="10" y="41" width="169" height="500" layout="absolute" title="Modules">
<mx:Text x="10" y="24" text="Check a module to load it; uncheck to unload it" width="129"/>
<mx:RadioButton x="10" y="97" label="None" selected="true"
click="removeModule()"/>
<mx:RadioButton x="10" y="123" label="Chart"
click="removeModule();loadModule('ChartModule.swf')"/>
<mx:RadioButton x="10" y="175" label="Table"
click="removeModule();loadModule('GridModule.swf')"/>
</mx:Panel>
<mx:Panel x="187" y="41" width="500" height="500" layout="absolute" title="Module: {moduleName}">
<mx:ModuleLoader id="currentModule" ready="readyModule(event)"
width="100%" height="100%" />
</mx:Panel>

0
相关文章