Flex模块的意义是什么?

时间:2011-07-20 12:52:36

标签: flex actionscript-3 flash-builder

据我所知,模块kann用于将应用程序拆分为不同的部分。

一个很大的优势似乎是能够在应用程序启动后加载模块,以获得更好的启动性能。

我个人希望模块能够为模块代码创建一个自己的Code Sandbox。 因此,主应用程序代码和模块代码都不应相互影响。但是,例如,来自模块的CSS样式会影响主要应用程序签证。

我的问题: 1.除运行时加载外,我可以使用哪些模块? 2.是否有在自己的沙箱中运行代码的选项?例如,通过加载swf资产?

2 个答案:

答案 0 :(得分:4)

  
      
  1. 我可以在运行时加载时使用模块吗?
  2.   

您可以将应用程序划分为不同的部分 - 例如,您可能只需要更新应用程序的购物车部分而不是整个应用程序。这使您无需再次部署整个应用程序即可完成此操作。这迫使良好的抽象,并意味着更少的回归测试/错误。

另一个好处是保护swf文件本身。我已经回写了最终应用程序,用户可能会进入订单屏幕,而不是用户管理屏幕。因为每个都是模块,所以客户端甚至都没有机会看到(或反编译)用户管理swf代码 - 因为我可以在尝试加载模块时验证用户的会话服务器端。这是一个额外的保护层。

内存管理 - 不仅仅是加载应用程序,还包括一次加载所有功能所需的处理量。如果用户只需要一个或两个屏幕,为什么要加载其他98个屏幕?

可移植性和代码重用。您可以在面向消费者的应用程序和后端工具中使用“订单查看器”模块。这些绝对不是同一个应用程序,但它们都需要订单查看器的基本功能。更好的是,一个完全不同的应用程序可以使用相同的功能。

  
      
  1. 是否有在自己的沙箱中运行代码的选项?例如通过   加载swf资产?
  2.   

模块之间进行通信需要特别注意,这里有一个很好的阅读:

http://livedocs.adobe.com/flex/3/html/help.html?content=modular_2.html

答案 1 :(得分:1)

您可以通过为其flexModuleFactory创建新的SystemManager来允许模块单独处理其样式,并且出于安全目的,您可以将其加载到单独的applicationDomain中。

不是你问的问题的答案,但它解决了你遇到的根本问题。

我们在上一份工作中使用了模块,允许我们动态开发和添加新的功能 - 模块的路径将存储在数据库中并在运行时加载。

HTH;

艾米