apache-flex - 在 Flex 和 AIR 之间共享代码

标签 apache-flex air

如您所知,我们可以基于 flex 构建 RIA 应用程序。此外,我们还可以构建基于 AIR 的桌面应用程序。我有一个问题,如果我们想同时构建 Web 和桌面应用程序。我们可以使用相同的代码将我们的作品发送到网络和桌面吗?

最佳答案

如果您为此设计应用程序,那么在 Flex 和 AIR 构建之间共享 99% 的代码库应该没有问题。

  • 您将需要针对 Flex/AIR 版本的单独应用程序 MXML,因为 AIR 使用 WindowedApplication Flex 使用 Application

  • 您需要抽象化您对任何 AIR-only API 的使用。也就是说,任何标有 AIR-only 图标 ( ) 在 the Online Documentation .如果您使用像 Swift Suspenders 这样的依赖注入(inject)容器,您可能会发现此过程更容易。 .

  • 或者,您可以将服务定义 拆分到两个不同的源代码树中。这将导致您的 AIR 项目和 Flex 项目共享一个源路径,但也有自己的源路径。这样,访问 com.application.MyService 的代码将在 AIR 和 Flex 之间共享,但是 com.application.MyService实现会根据使用的“服务源路径”而有所不同。

  • 您可能会发现为每个构建配置编译器标志很有用,例如 -define+=CONFIG::AIR .这允许您使用条件编译,以便您可以为两个构建编译相同的文件,但包括 AIR 构建的特定代码。

这是一个条件编译的例子:

public function getMyService() : IMyService
{
    CONIFG::AIR
    {
        return new MyServiceThatUsesAnAIROnlyAPI();
    }

    return new FallbackServiceForFlex();
}

不幸的是,没有办法“否定”条件标志(即 !CONFIG::AIR ),因此您要么需要明智地使用它,要么包括两个标志( CONFIG::AIRCONFIG::FLEX )

关于apache-flex - 在 Flex 和 AIR 之间共享代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4203252/

相关文章:

apache-flex - 如何在 Flex/AS3 中使用基于 cookie 的 session 测试服务

apache-flex - AIR 图形用户界面测试

ios - 保存到服务器后 iOS 图像方向错误的 AS3 air 应用程序

actionscript-3 - as3 AIR Win- 在全屏窗口中阻止 ALT+空格键

javascript - 选择仪表板技术——extjs、flex、angularjs 等

java - 类型转换 if flex

apache-flex - 如何禁用 Flex 组件中的水平滚动条?

android - 适用于 flex : how do I delete all the application data? 的 android 版 adobe air

sqlite - Adobe Air SQLite 误解

java - 更适合我的情况的技术 - Adob​​e/AIR/Flex 还是 Google SDK?