1

我正在为 Flex/Air 开发一个相当大的应用程序。我们正在使用GraniteDS 和 Tide与来自 Java EE 服务器的模型进行交互。

我一直在阅读有关 Flex 中的模块化和模块的信息。应用程序已经构建好了,我正在想办法重新设计一些类和部分。从我目前所读的内容来看,我了解模块是一种可以动态加载的不同 swf。大多数教程/文档都是面向使用 Flex 或 Air 而不是真正的开发人员的 Flash“程序员”,因此这使得在线资源更难获得。

我还不能理解的是如何在这个模块下封装 ActionScript 类或 MXML 视图。

我已经将一些代码分离到库中。例如,从 Granite 生成的代码位于“服务器”库中。但我想将部分逻辑与其版主、控制器和视图分开。模块是要走的路吗?是否有像教程这样的“傻瓜模块”或“程序员头上的 Flex 模块”,以便获得更好的视角来构建我的架构?什么时候选择库,什么时候选择模块?

我正在使用 Flex 3.5,而迁移到 Flex 4 还遥遥无期,所以请不要回答 Flex 4,谢谢!

4

1 回答 1

1

模块是将 UI 封装到不相互依赖的不同部分的答案。把它们想象成应用程序中的应用程序。

如果您想封装“代码”,即非 ui actionscript,那么您真的只需要类和类的包。您还可以将该代码打包到一个 swc 中,这只是该代码的编译版本,您可以将其包含在多个项目中(我认为这就是您所说的库)。

你不会想创建一个仅仅包含非 ui 代码的模块。您不想使用模块来分离应用程序中的模型/视图/控制器。

如果你有你的应用程序的一部分,它在大多数情况下完全独立运行,除了可能传入的一点信息之外,与应用程序的其余部分没有真正的依赖关系,那么它对模块是有意义的。

我们主要使用模块的地方是用于具有不同部分的应用程序,您一次只在一个部分中工作。其他部分不需要占用资源,因此我们在模块中有不同的部分并根据需要加载/卸载它们。

这有帮助吗?

编辑以回复以下评论:

我所说的库是指 Flex 库项目,您可以在其中封装类并使用 swc。您可以在 Flex 项目中包含这些库吗?(我为每个新图书馆使用一个单独的图书馆项目)。

是的,您可以在您的 flex 项目中使用这些 swc(代码库)。只需将 swc 放在 flex/flash 构建器项目的 lib 目录中,代码就会自动添加到类路径中。只需确保单个 swc 中的代码所需的所有内容都在该 swc 中。不要让一个 swc 依赖另一个 swc 来运行。

于 2010-05-24T18:21:41.457 回答