13

我试图弄清 Flash 平台的混乱情况(主要是为了让我理解被抛出的术语),到目前为止,我还无法弄清楚 AIR 和 Flex SDK 究竟是如何相关的。如果没有实际查看 SDK,我的理解是 AIR 使您能够开发 Flash(即 ActionScript,显然还有 JavaScript/HTML)应用程序,这些应用程序可以由 AIR 运行时运行而无需浏览器(例如纯桌面或智能手机应用程序)。Flex SDK 似乎是类和附加 API(类似于 JavaFX?)的集合,用于扩展“标准”Flash 库。

现在,我已经下载了这两个 SDK 的最新版本,显然,事情没那么简单。因此,首先我查看了 AIR SDK(http://www.adobe.com/devnet/air/air-sdk-download.html,截至目前为 v3.4)。据我所知,“adt”实用程序是 AIR 的主要部分,可让您打包完成的应用程序。但是,我不确定 AIR SDK 是否真的包含编译器 - 假设您有一堆 ActionScript .as 文件并想使用 AIR SDK 将它们转换为 .swf 或 .air 文件,这是否可能?

不幸的是, Flex SDK(http://www.adobe.com/devnet/flex/flex-sdk-download.html,v4.6)并没有帮助解决混乱。它确实包括编译器和其他工具,但在它的“bin”文件夹中,我还可以找到“adt”和“adl”——AIR 工具!更重要的是,它还有“AIR SDK license.pdf”和“AIR SDK readme.txt”文件;从这些来看,Flex SDK 似乎包含一些旧版本的 AIR SDK 版本 2。

更令人困惑的是,我还在 Adob​​e 的网站 ( http://gaming.adobe.com/getstarted /)。似乎这不仅仅是通过将 AIR 3.4 文件复制到 Flex 4.6 文件、向列表中添加另一个项目来创建的。

所以,本质上,我想知道这两个(三个?)SDK 之间的区别。我需要 Flex 实用程序来编译吗?为什么“纯”Flex SDK 包含 AIR 的部分(?)?我可以将任何版本的 AIR SDK 复制到 Flex SDK 中,以便与 FlashDevelop 一起使用吗?

4

3 回答 3

18
I haven't been able to figure out how exactly the AIR and Flex SDKs are related.

从封装的角度来看,它们没有任何关系。但是,Adobe 确实将 AIR SDK 与他们的 Flex SDK 版本一起分发。

使用 IDE(例如 Flash Builder)时,需要特定的目录结构,其中包括 Flex SDK 的子目录中的 AIR SDK。

使用 Apache Flex 时,Apache 没有分发 AIR SDK 的权利,因此用户可以将 AIR SDK 和 Flex SDK 结合起来,以便于将 SDK 与 Flash Builder 一起使用。但是,Apache Flex 人员正在开发一种“易于安装”工具来准备 Apache Flex SDK 以与 Flash Builder 一起使用。该工具会下载所有相关的非 Apache 二进制文件,并为您提供一个完整的包。

在没有 AIR 的情况下使用 Flex UI 框架是完全有效的;并在没有 Flex 的情况下使用 AIR SDK。但是,在 Flex SDK 中,特别是在移动组件集中,我相信对 AIR SDK 存在一些依赖关系。要使用 AIR,您需要一些东西来编译它。Flex SDK 中的 MXMLC 是一种选择。

我将尝试回答您的一些具体问题:

我的理解是,AIR 使您能够开发 Flash(即 ActionScript,显然还有 JavaScript/HTML)应用程序,这些应用程序可以由 AIR 运行时运行,而无需浏览器(例如纯桌面或智能手机应用程序)。

这是真的; 除了我不相信 AIR 像在桌面上那样支持智能手机的 HTML/JS。Mobile AIR Runtime 不像桌面版本那样包含嵌入式浏览器。但是,您可以使用 StageWebView 使用设备上的浏览器。

Flex SDK 似乎是一个类和附加 API 的集合......以扩展“标准”Flash 库。

这是对的。除了用于构建您自己的 UI 类的框架之外,Flex 框架还提供了许多 UI 组件类。需要明确的是,Flex SDK 不仅包括 Flex 框架,还包括一步调试器和命令行编译器。

Flex SDK 似乎包含一些旧版本的 AIR SDK

这是真的; Flex SDK 包含一个 AIR SDK 版本。Flex 和 AIR 不在同一个更新时间表上;所以 Flex 只有在新的 Flex 版本发布时才会使用最新版本的 AIR 进行更新。如果您需要,有多种方法可以将新的 Air SDK 叠加到 Flex SDK 上。 这里有一些说明。我忘记了 Adob​​e Flex 4.6 中包含的 AIR 版本,但我认为它是 AIR 3.2。AIR 3.4 是 Adob​​e 的最新版本。

值得注意的是,Flex 已捐赠给Apache 基金会;他们已经发布了 Apache Flex 4.8。

我需要 Flex 实用程序来编译吗?

我对这个问题的答案并不完全清楚。大多数人使用 Flex SDK 中的 MXMLC 来编译基于 AIR 的应用程序。即使您使用 Flash Builder,MXMLC 也会在后台使用。如果您使用 Flash Professional,我相信它有自己的 AIR 编译器,但我不知道它是否基于 MXMLC。Flash Builder 4.7 将包括一个全新的编译器——代号为 Falcon。

我可以将任何版本的 AIR SDK 复制到 Flex SDK 中,以便与 FlashDevelop 一起使用吗?

理论上是的。我对 FlashDevelop 一无所知,但我确实知道它支持 Flex。我假设,通过扩展,它也支持 AIR。

于 2012-09-23T18:55:33.563 回答
3

我会尽量让它更简单。Flex SDK 和 AIR SDK 的划分是由于 Adob​​e 开发团队的工作方式,主要是因为不同的发布周期。AIR SDK 与 Flex SDK 有不同的时间表,从今天开始,Flex SDK 不再由 Adob​​e 开发。我认为可以肯定地说它们的打包/分发方式没有其他原因 - 我多年来一直找不到它,所以,即使有一个,它也不明显或重要。

Flex SDK 通常包含 AIR SDK 的过时版本,因此您需要通过 Flex SDK 复制 AIR SDK 才能拥有最新的环境。如果您可以处理设置两个部分运行所需的东西(实际上并没有那么多),您可能不会复制任何东西。但是,AIR SDK 不足以进行开发。Flex SDK 就足够了,但不会包含一些与 AIR 相关的部分(还有更多的 SDK,然后是这两个,但为简单起见,这里不再赘述)。

我将尝试在下面列出事物以及寻找它们的地方,我不确定这个系统是否连贯,但看起来这是我能做的最好的:

弹性 SDK

  • ABC(ActionScript)编译器、SWF(转码器、链接器等)。编译器、SWC(库)打包器、文档生成器、反汇编器、调试器等实用程序。
  • 基本的 AIR 支持,主要涉及桌面、打包器和启动器(基本上是调试器)。
  • 运行时(浏览器的各种播放器,独立的,AIR 播放器)。
  • 为不同的运行时链接您的代码的库(类似于 C 中的标头)。
  • 用于运行一些实用程序的 Ant 任务,主要是编译器和链接器,但它们也有一些其他的东西,比如 HTML 模板生成等。
  • SDK 源。
  • Flex 框架(用于设计企业风格应用程序的质量可疑的大型 GUI 库 - 表单、空白、图表等)。

AIR SDK

  • AIR、APK 的打包器和启动器以及那个 iOS 应用程序格式是什么......
  • 它包含运行时、模拟器(主要是用于 Android 模拟器的 avd + 一些用于处理 adb 等的实用程序,但对于 iOS 也可能类似)。
  • 运行时的库(标头)。
  • 一些 Flex 框架(上面提到过),特别针对桌面/移动设备。
  • 与安装程序/更新程序相关的东西。
  • 相关来源。

最重要的是,Adobe 将 Flex SDK 捐赠给了 Apache,最新发布的版本是 4.8(由 Apache 提供)。您可能会发现使用 Apache 版本更复杂,因为它需要您进行更多配置并从 Adob​​e 下载一些位,它们不允许在 Apache 许可下重新分发。

于 2012-09-23T20:20:40.417 回答
1

我没有足够的声誉将此作为评论,但参考 wxvw 的回答,Apache Flex 一键安装程序已发布,可在此处获得:

http://flex.apache.org/installer.html

它当前安装 Flex 4.9 和所有必需的(以及各种可选的)依赖项。

于 2013-01-17T17:03:38.847 回答