我可以使用相同的源代码生成Flex Web和Air桌面应用程序吗?

时间:2008-09-18 15:00:59

标签: flex air adobe desktop flexbuilder

我是Air的新手。我有一个现有的Flex 2应用程序,我正在考虑将其引入Flexbuilder 3.我的问题是我可以使用相同的基本应用程序(和源代码)来制作Air版本,或者我是否必须维护以分离代码树:一个用于Air版本,一个用于Flex / SWF版本?

5 个答案:

答案 0 :(得分:6)

我发现从同一来源创建Flex和AIR应用程序的最佳方法是为几乎所有代码使用核心库项目,为Flex和AIR应用程序使用单独的小项目。

有两个关键概念使这个功能非常强大和可维护,不仅允许两个应用程序,而且如果您愿意,可以用于许多“版本”。

  1. 模块: - 如果核心应用程序是 实际上是一个模块(或模块 加载其他模块)你将能够 轻松创建存根Flex和AIR 基本上是应用程序 那里设置项目属性, 跨模块的引用类 沟通,然后简单加载 核心应用程序模块 ModuleLoader组件。

  2. 工厂对象: - 有 你想在AIR上做的事情 您不能的桌面应用程序 在Flex应用程序中执行,或任何 你想要什么的情况 工作方式不同 应用程序,一个工厂对象 创建项目的实例 特定班级是一个很好的方法 它。例如,你可以打电话给你 “保存”功能,用于AIR保存 到文件系统,但对于Flex调用 一个网络服务。

    看看Todd Prekaski的 优秀的Flex DevNet文章 Building Flex and Adobe AIR applications from the same code base 如何做到这一点。

  3. 创建Flex库项目后,您将创建主模块,创建Flex和AIR应用程序项目。在两个应用程序项目的属性中,将库项目src目录添加到Flex构建路径。在项目设置中,您还需要将模块添加到Flex模块部分,为项目设置优化选项。

答案 1 :(得分:5)

您不能在同一个Flex Builder项目中同时混合AIR和Flex,但您可以共享代码。这是怎么......

  1. 像您一样创建基于Flex的项目 通常会。
  2. 创建第二个基于AIR的项目。
  3. 在第二个应用程序中,转到 项目 - >属性
  4. 选择“Flex构建路径”选项。
  5. 在“源路径”下添加文件夹 包含你的来源 第一个基于Flex的项目。
  6. 现在两个项目共享Flex项目的代码。

    您需要注意不要在两个应用程序之间共享的代码中使用AIR only API。

答案 2 :(得分:2)

您可以使用相同的。

答案 3 :(得分:1)

一种方法是将大部分应用程序放在库中的基于组的组件中。

Flex和AIR应用程序都可以将该组件嵌入其窗口中。

如果需要自定义代码,请让Group组件接受一个I​​nterface对象,该对象具有特定于平台的所有方法(loadFile,saveFile等)。每个应用程序都会注入一个适当实现这些方法的对象。

我已经开发了一个注入整个本地数据访问层(到SQLite数据库)的产品,核心应用程序不知道它是在浏览器中运行还是在桌面上运行(连接或断开连接)。 / p>

干杯

答案 4 :(得分:0)

创建3个项目:Air,Web和common。从空中和网络,包括共同。

http://simplifiedchaos.com/how-to-compile-both-flex-and-air-application