Apache flex Flex模块与RSL

Apache flex Flex模块与RSL,apache-flex,module,swc,Apache Flex,Module,Swc,我有点困惑什么时候最好使用Flex模块或RSL库(在Flex 3.5中) 我的目标是将我的项目分成几个单元项目,这样我就可以分别进行测试和工作。假设我有一个客户应用程序和供应商应用程序。我还有一个带有两个按钮的前端面板。每个按钮都会启动客户应用程序或供应商应用程序 这些应用程序产生了不同的结果。它们共享一些功能和公共组件 我明白,如果我制作一个主项目(用于用户登录和显示第一个面板)和两个模块(客户、供应商),我必须在我的Eclipse项目中包含所有组件,不是吗 我是否应该使用RSL为供应商和其他

我有点困惑什么时候最好使用Flex模块RSL库(在Flex 3.5中)

我的目标是将我的项目分成几个单元项目,这样我就可以分别进行测试和工作。假设我有一个客户应用程序和供应商应用程序。我还有一个带有两个按钮的前端面板。每个按钮都会启动客户应用程序或供应商应用程序

这些应用程序产生了不同的结果。它们共享一些功能和公共组件

我明白,如果我制作一个主项目(用于用户登录和显示第一个面板)和两个模块(客户、供应商),我必须在我的Eclipse项目中包含所有组件,不是吗

我是否应该使用RSL为供应商和其他客户应用程序创建SWC,并从主应用程序调用,而不是创建模块

那么,哪种选择更合适呢?你有什么建议?每个选项的权衡是什么

另一方面,这个flex应用程序通过Blaze和ibatis与Java集成,用于持久性管理,并由web apache服务器保存。我也考虑过创建独立的war文件来保持这种独立性,但我认为这不会优化flex代码。我是对的

多谢各位


Nil

模块提供了更细粒度的控制,可以控制内容的加载时间和卸载时间

假设用户没有本地缓存RSL,那么它将作为应用程序初始加载的一部分进行加载

使用模块,您可以将加载延迟到用户请求的时间

在您的例子中,听起来您希望将两者结合使用

为客户和供应商应用程序分别声明一个模块,并仅在单击按钮时加载相应的模块。这样可以避免产生冗余模块的下载成本


它们之间共享的公共逻辑可以进入RSL,RSL将缓存在客户端,并且只下载一次。

模块和RSL的用途不同

RSL可以包含代码和资源,并在主swf加载时加载到内存中,就像它们是同一文件的一部分一样

RSL的主要用途是分离可能在多个应用程序中使用的代码或资产,以便web浏览器可以缓存它并只加载一次。RSL不需要Flex框架,可用于任何Flash/ActionScript项目。您无法控制RSL的加载方式,也无法卸载它

模块本质上是一个外部SWF,可以根据需要加载,并添加了大量特定于Flex的代码,以确保Flex功能按预期工作。例如,如果处理不当,样式继承和嵌入字体在加载的SWF中可能会出现问题。FlexUI组件具有特定的逻辑,以确保这些功能与模块一起正常工作。模块还处理跨域问题(例如,当鼠标位于另一个域的SWF上时,通常无法接收鼠标事件,但模块可以解决此问题)

模块按需加载,通常包含视图模块的主要用途是延迟加载视图,直到需要时才加载它。这加快了应用程序的初始加载速度,用户只需在实际需要查看视图时加载该视图

与只加载SWF相比,模块的开销很大,但是您需要使用模块来保证Flex的所有功能都能按预期工作


可以优化模块和RSL,以删除特定应用程序中已包含的代码。不过,这对于模块来说更有意义,因为它将使RSL仅可用于单个应用程序,从而大大挫败RSL的主要用例。

嗨,Marty,非常感谢您的回复。