开发模块化Flex应用程序

时间:2010-05-09 09:28:14

标签: flex actionscript-3 module

我希望能够理解如何开发Flex应用程序,以便我可以在运行时提供实现类。在Java世界中,我将在JAR(例如myapp-api.jar)中指定接口,在单独的JAR(例如myapp-impl.jar)中实现这些接口,并将它们与应用程序WAR中的其他资源(例如myapp)打包在一起。战争)。在应用程序的代码中,我将动态地实例化实现类。

这种方法在Flex中是否可行?我知道我可以动态地实例化类,这是一个好的开始。我对模块,RSL和SWC感到有点困惑。

我希望创建一个SWF应用程序,该应用程序引用了接口SWC和实现SWC。我的想法是,如果我需要为特定客户调整应用程序,那么我可以创建一个新的实现SWC,而不必修改SWF或接口SWC。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这在flash / flex中比在java中要难得多,或者如果你来自java背景,至少它有点模糊。)我有几个指示你。

如果你真的想在运行时拥有单独的类库,你只需要使用RSL,特别是如果你认为这个库将用于同一组人将使用的几个项目中。 (它们主要用于减少下载/启动时间)

您也可以自己将应用程序划分为多个部分 - 在这种情况下,您需要确保不要将相同的信息打包两次 - 这可以通过在第一个编译的swf上生成linkreport并排除这些类来完成从第二次编译。这就是modules在flex中的工作方式。

SWC主要用作编译时库(它们基本上是包含swf的zip和描述其内容的元数据xml文件)。

如果你想在库中有一组单独的接口你可以用接口生成一个swc并用实现编译另一个swc,你应该在编译实现类时排除接口,如果你想避免重复的类/接口定义。如果在链接接口和实现SWC时编译最终应用程序而不排除类,则可以使用单个最终SWF来运行应用程序 - 如果要保持它真正独立,则应该查看模块(或者只是加载swfs如果你正在创建一个纯动作脚本项目。)

我自己如上所述使用了SWC,现在我正在研究RSL和模块,用于我们当前的项目。