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

时间:2020-03-06 14:21:47  来源:igfitidea点击:

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

解决方案

我们可以使用相同的内容。

我们不能在同一Flex Builder项目中同时使用AIR和Flex,但可以共享代码。这是如何做...

  • 像往常一样创建一个基于Flex的项目。
  • 创建第二个基于AIR的项目。
  • 在第二个应用程序中,转到project-> properties。
  • 选择" Flex构建路径"选项。
  • 在"源路径"下,添加包含第一个基于Flex的项目的源的文件夹。

现在,两个项目共享来自flex项目的代码。

我们需要注意不要在打算在两个应用程序之间共享的代码中使用仅AIR API。

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

有两个关键的概念使它非常强大且可维护,不但允许两个应用程序,而且如果我们愿意的话还可以用于许多"版本"。

  • 模块:-如果核心应用程序实际上是一个模块(或者加载其他模块的模块),我们将可以轻松创建存根Flex和AIR应用程序,这些应用程序基本上可以用来设置项目属性,跨模块通信的参考类,然后只需使用ModuleLoader加载核心应用程序模块。
  • 工厂对象:-当我们要在AIR桌面应用程序上执行某些操作但又无法在Flex应用程序中执行操作时,或者在某些情况下我们希望某些事情在应用程序之间以不同方式工作时,工厂对象将创建一个项目特定的类是实现此目标的好方法。例如,我们可以调用"保存"功能,该功能用于AIR保存到文件系统,而对于Flex则调用Web服务。看看Todd Prekaski撰写的有关如何构建Flex和Adobe AIR应用程序的优秀Flex DevNet文章,该文章基于相同的代码库,以了解如何执行。

在创建要在其中创建主模块的Flex库项目之后,请创建Flex和AIR应用程序项目。在两个应用程序项目的属性中,将库项目src目录添加到Flex Build Path。在项目设置中时,我们还需要将模块添加到"灵活模块"部分,设置选项以针对项目进行优化。