我有点不明白什么时候使用、Flex模块、或RSL语言(在Flex3.5中)更好。
我的目标是将我的项目分成几个单元项目,这样我就可以分别测试和工作。假设我有客户应用程序和供应商应用程序。我还有一个带有两个按钮的前端面板。每个按钮启动客户应用程序或供应商应用程序。
这些应用程序产生了不同的东西。它们还共享一些.as函数和公共组件。
我明白,如果我创建一个主项目(用于用户登录并显示第一个面板)和两个模块(客户、供应商),那么我必须在Eclipse项目中拥有所有这些组件,不是吗?
与其做模块,我应该为供应商创建SWC,为客户创建其他应用程序,并使用RSL从主应用程序调用?
那么,哪种选择更合适呢?你给我什么建议?每种选择的利弊是什么?
另一方面,这个flex应用程序是通过Blaze和is与Java集成的,用于持久化管理,并由web apache服务器保存。我还考虑过创建独立的war文件来保留这个附件,但我认为这并不能优化flex代码。我是对的?
谢谢。
零
发布于 2011-01-20 16:13:44
模块和RSL的用途不同。
RSL可以包含代码和资产,并在主swf加载时加载到内存中,就好像它们是同一个文件的一部分一样。
RSL的主要目的是将多个应用程序中可能使用的代码或资产拆分开来,以便web浏览器能够缓存它,并且只加载一次。RSL不需要Flex框架,可以在任何Flash/ActionScript项目中使用。您无法控制RSL是如何加载的,也无法卸载它。
模块本质上是一个外部SWF,可以按需加载,并添加了大量特定于Flex的代码,以确保Flex特性按预期工作。例如,如果处理不当,在加载的SWF中,样式继承和嵌入式字体可能会出现问题。Flex UI组件具有特定的逻辑,以确保这些组件与Modules一起正常工作。模块还处理跨域问题(例如,当鼠标通过另一个域的SWF时,您通常无法接收鼠标事件,但是Modules可以解决这个问题)。
模块按需加载,通常包含视图。模块的主要目的是推迟加载视图,直到需要。这加快了应用程序的初始加载速度,如果用户真的想查看该视图,则只需加载该视图即可。
与仅仅加载SWF相比,模块有很大的开销,但是您需要使用模块来保证Flex的所有特性都能像预期的那样工作。
模块和RSL都可以被优化以删除已经包含在特定应用程序中的代码。不过,这对于Modules来说更有意义,因为它将使RSL只在单个应用程序中使用,从而大大地击败了RSL的主要用例。
发布于 2010-06-11 15:13:31
模块提供更细粒度的控制,以控制内容何时加载--以及可选择地--卸载。
假设用户没有本地缓存的RSL,那么它将作为应用程序初始加载的一部分加载。
使用Modules,您可以将加载推迟到用户请求的时间。
在您的实例中,听起来您希望使用两者的组合。
为客户和供应商应用程序分别声明一个模块,并只在单击按钮时加载适当的模块。这样就避免了冗余模块的下载成本。
它们之间共享的公共逻辑可以进入RSL,RSL将被缓存在客户端,并且只能下载一次。
https://stackoverflow.com/questions/3004508
复制相似问题