我是Air的新手.我有一个现有的Flex 2应用程序,我正在考虑将其引入Flexbuilder 3.我的问题是我可以使用相同的基本应用程序(和源代码)来制作Air版本,或者我是否必须维护以分离代码树:一个用于Air版本,一个用于Flex/SWF版本?
我发现从同一来源创建Flex和AIR应用程序的最佳方法是对几乎所有代码使用核心库项目,为Flex和AIR应用程序分别使用小项目.
有两个关键概念使其非常强大和可维护,不仅允许两个应用程序,而且如果您如此倾向于许多"版本".
模块: - 如果核心应用程序实际上是一个模块(或加载其他模块的模块),您将能够轻松创建存根Flex和AIR应用程序,这些应用程序基本上用于设置项目属性,跨模块通信的引用类,然后只需使用ModuleLoader加载核心应用程序模块.
工厂对象: - 如果要在AIR桌面应用程序中执行您无法在Flex应用程序中执行的操作,或者您希望在应用程序中以不同方式工作的任何情况,则创建实例的工厂对象项目特定类是一个很好的方法.例如,您可以调用"保存"功能,AIR保存到文件系统,但Flex调用Web服务.
查看Todd Prekaski关于构建Flex和Adobe AIR应用程序的优秀Flex DevNet文章 来自相同的代码库 ,了解如何执行此操作.
创建Flex库项目后,您将创建主模块,创建Flex和AIR应用程序项目.在两个应用程序项目的属性中,将库项目src目录添加到Flex构建路径.在项目设置中,您还需要将模块添加到Flex模块部分,为项目设置优化选项.
您不能在同一个Flex Builder项目中混合使用AIR和Flex,但可以共享代码.这是如何做...
像往常一样创建基于Flex的项目.
创建第二个基于AIR的项目.
在第二个应用程序中,转到project-> properties.
选择"Flex构建路径"选项.
在"源路径"下,添加包含第一个基于Flex的项目的源的文件夹.
现在两个项目共享flex项目中的代码.
您需要注意不要在要在两个应用程序之间共享的代码中使用AIR only API.