术语Flash可以包含下面定义的任何其他术语,我发现说“Flash”而不具体说明您的意思可能会造成混淆和误导。恰当的例子:当您在问题中说“Flash”时,我不确定您的具体含义。是 Flash 播放器吗?创作工具?还是属于 Adobe 所谓的“Flash 平台”的全部技术?为了帮助澄清这一切,让我定义创建 Flash 和 Flex 内容所涉及的技术,以便我们在这里都使用相同的术语:
Flash Player是浏览器中富媒体内容的运行时。还有Flash Lite可在较旧或低端的移动设备上运行 Flash 内容,Adobe AIR扩展了 Flash Player 以允许内容作者发布可以与文件系统、窗口系统和设备等集成的本地桌面和移动应用程序加速度计和摄像头等传感器。Adobe 将这些统称为Flash 运行时。
Flash Professional(通常称为Flash 创作工具或Flash IDE)历来是用于创建在 Flash Player 上运行的内容的主要应用程序。它非常面向设计师,具有时间线、图层和可视化绘图工具。与其他更专注于代码的开发工具(如 Flash Builder(见下文))相比,软件开发人员可能会发现此应用程序令人迷惑和受限。当有人说“我用 Flash 构建了一些东西”时,他们通常指的是 Flash 创作工具,但情况并非总是如此。出于这个原因,最好总是澄清以避免任何混淆。
ActionScript是 Adobe 支持以 Flash 运行时为目标的主要编程语言。当前版本是 ActionScript 3(缩写为AS3),从 Flash Player 9 开始支持。使用旧版本的 ActionScript 创建的内容仍然可以在最新版本的 Flash Player 中运行,但仅在使用 ActionScript 3 时才支持新功能创建新内容。
Flex是一组旨在创建针对 Adobe Flash 运行时的丰富应用程序的技术。尽管之前说“Flex”与“Flash”有同样的歧义,但 Flex 品牌名称正变得越来越专注于 Flex 框架和 SDK,如下所述。
Flex SDK由编译器、命令行调试器和 Flex 框架组成。包含的编译器是: 1. MXMLC,一个 ActionScript 和 MXML 编译器,用于输出最终的 SWF 文件以部署到 Flash Player。2. COMPC,ActionScript 的静态库编译器,输出 SWC 文件。3. ASDOC,一个基于编译器技术的文档生成器。
Flex 框架是旨在构建富 Internet 应用程序的 ActionScript 类的集合。它包括用户界面控件、Web 服务和其他连接类、格式化程序和验证程序、拖放、模式窗口和组件状态等内容。这些类在 mx.* 包中。通常,当开发人员在没有任何澄清信息的情况下说“Flex”时,他们指的是 Flex 框架,而不是以前称为 Flex Builder 的产品。
2011 年,Adobe 将 Flex SDK 捐赠给了 Apache 软件基金会。它现在称为Apache Flex,完全由社区而不是 Adobe 管理。但是,Adobe 员工继续为该项目做出贡献,Flash Builder(见下文)继续支持 Apache Flex 项目发布的新 SDK。
MXML是一种基于 XML 的标记语言,Flex 编译器使用它来简化布局和将组件放入容器中。XML 的树状结构使包含层次结构更易于可视化。MXML 实际上是在编译过程中转换为 ActionScript。
Flash Builder(以前称为Flex Builder)是一种开发环境,允许开发人员构建不同的项目类型以创建部署到 Flash 运行时的 SWF 文件。它建立在 Eclipse 平台之上,软件工程师比较熟悉。Flash Builder 支持使用 Flex 或纯 ActionScript 构建的项目。Flex 项目包括 Flex 框架。ActionScript 项目是您可以使用的最基本的项目,从单个类和一个空画布开始,并且不包括 Flex 框架。
Flash Builder 不会取代 Flash Professional。一些传统上使用 Flash Professional 的人现在可能会选择使用 Flash Builder。通常,这些软件工程师喜欢或需要 Flash Builder 提供的高级开发工具,或者不大量使用在可视化工具中设计的资产。一些开发人员可能会在 Flash Builder 中编写他们的代码,同时选择在 Flash 创作工具中编译他们的项目。通常,这些开发人员也是设计师,或者他们正在与其他设计师合作。在这种情况下,可能在 Flash 创作工具中创建了许多图形资产,将它们引入另一个环境可能很困难或根本不合适。
Flex 框架专为构建应用程序而设计。它包括许多传统的表单控件(按钮、列表、数据网格等),并且大部分代码在用 ActionScript 编写的高级组件框架上运行。并非每个人都在构建 Flex 旨在创建的那种内容,而且 Flex 并没有取代每个人的传统 Flash 开发实践。对于某些开发人员来说,这是一种更好的方法,但可能不适合其他开发人员。更多注重设计的网站,例如那些为电影、音乐、能量饮料、广告活动和类似的东西创建的网站,可能不应该使用 Flex 框架。这些类型的内容可能更适合 Flash Professional 或 Flash Builder 中的纯 ActionScript 项目。相似地,您放入网站侧边栏或社交网站个人资料中的小部件可能需要使用纯 ActionScript(没有 Flex 框架)构建,因为它们需要较小的文件大小,并且可能不需要大的复杂为大型应用程序设计的组件架构。以 Flash 运行时为目标时,应根据项目的要求和目标选择开发环境、框架和工作流程。