我是新来的空气。我有一个现有的 Flex 2 应用程序,我正在考虑将它引入 Flexbuilder 3。我的问题是我可以使用相同的基础应用程序(和源代码)来制作 Air 版本,还是我必须维护单独的代码树: 一个用于 Air 版本,一个用于 Flex/SWF 版本?
5 回答
我发现从同一个源创建 Flex 和 AIR 应用程序的最佳方法是对几乎所有代码使用核心库项目,而 Flex 和 AIR 应用程序使用单独的小项目。
有两个关键概念使它非常强大和可维护,不仅允许两个应用程序,而且如果你愿意的话,还允许许多“版本”。
模块:- 如果核心应用程序实际上是一个模块(或加载其他模块的模块),您将能够轻松创建存根 Flex 和 AIR 应用程序,这些应用程序基本上用于设置项目属性、跨模块通信的引用类、然后只需使用 ModuleLoader 加载核心应用程序模块。
工厂对象:- 当您想在 AIR 桌面应用程序上做一些您不能在 Flex 应用程序中做的事情时,或者在任何情况下您希望某些事情在应用程序之间以不同的方式工作时,工厂对象会创建一个项目特定类是一个很好的方法。例如,您可以调用“保存”函数,对于 AIR,它会保存到文件系统,而对于 Flex,它会调用 Web 服务。
查看 Todd Prekaski 的优秀 Flex DevNet 文章, 了解如何使用相同的代码库构建 Flex 和 Adobe AIR 应用程序。
一旦您创建了一个将在其中创建主模块的 Flex 库项目,请创建您的 Flex 和 AIR 应用程序项目。在两个应用程序项目的属性中,将库项目 src 目录添加到 Flex Build Path。在项目设置中,您还需要将模块添加到 Flex Modules 部分,设置选项以优化项目。
您不能在同一个 Flex Builder 项目中混合使用 AIR 和 Flex,但可以共享代码。就是这样...
- 像往常一样创建一个基于 Flex 的项目。
- 创建第二个基于 AIR 的项目。
- 在第二个应用程序中,转到项目-> 属性。
- 选择“Flex 构建路径”选项。
- 在“源路径”下添加包含您的第一个基于 Flex 的项目的源代码的文件夹。
现在两个项目共享来自 flex 项目的代码。
您需要注意不要在打算在两个应用程序之间共享的代码中使用仅限 AIR 的 API。
你可以使用相同的。
一种方法是将应用程序的大部分放在库中基于组的组件中。
Flex 和 AIR 应用程序都可以将该组件嵌入到它们的 Window 中。
If you need to have custom code, have your Group component accept an Interface object that has all the methods that are specific to a platform (loadFile, saveFile, etc.). Each application injects an object that implements these methods appropriately.
I've worked on a product that injected a whole local-data access layer (to the SQLite database) and the core application had no idea if it was running in a browser or on the desktop (connected or disconnected).
Cheers
Create 3 project: Air, Web, and common. from air and web, include common.
http://simplifiedchaos.com/how-to-compile-both-flex-and-air-application