82

问题

好吧,我对所有流行语和新闻稿宾果游戏感到困惑。

  • flash和flex是什么关系:
    • 更换闪光灯(不是真的兼容)
    • 增强闪光
    • 下个版本的flash 但还是基本兼容
    • 完全分离技术
    • ???
  • 如果我现在开始使用 Flash,我应该直接跳到 Flex 吗?

跟进

好的,所以我听到的是这个难题有三个不同的部分:

  • 闪光
    • 用于制作“Flash 电影”的图形编辑器,即它是一个专注于“Flash”视觉方面的 IDE(正式为 Flash CS3?)
    • 显示插件的正式名称(即“立即下载 Flash!”)
    • 对整个技术堆栈的一般参考
    • 在编辑器方面,它是一个基于线性时间轴的编辑器,最适合用于具有复杂交互性的动画。
  • 动作脚本
    • “Flash”编程语言
  • 柔性
    • 一个专注于“Flash”(Flex Builder?)的编码/编程方面的 Adob​​e Flash IDE
    • 一个 Flash 库,可增强 Flash 并使其更易于编程(Flex SDK?)
    • 不受时间线约束(如 Flash IDE 那样),因此更容易实现“标准”应用程序。

它是否正确?

-亚当

4

22 回答 22

134

术语Flash可以包含下面定义的任何其他术语,我发现说“Flash”而不具体说明您的意思可能会造成混淆和误导。恰当的例子:当您在问题中说“Flash”时,我不确定您的具体含义。是 Flash 播放器吗?创作工具?还是属于 Adob​​e 所谓的“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是 Adob​​e 支持以 Flash 运行时为目标的主要编程语言。当前版本是 ActionScript 3(缩写为AS3),从 Flash Player 9 开始支持。使用旧版本的 ActionScript 创建的内容仍然可以在最新版本的 Flash Player 中运行,但仅在使用 ActionScript 3 时才支持新功能创建新内容。

Flex是一组旨在创建针对 Adob​​e 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,完全由社区而不是 Adob​​e 管理。但是,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 运行时为目标时,应根据项目的要求和目标选择开发环境、框架和工作流程。

于 2008-09-16T02:57:46.723 回答
34

Adobe Flex Builder 是 Adob​​e 的 IDE,用于开发将在 Flash 插件中运行的应用程序。Flex SDK 是指开发人员用来编写应用程序的库。

本质上,术语“Flex”是指开发方面,而“Flash”是 Adob​​e 技术的运行时方面。

更正: “Flash”一词也用于指代设计人员使用的 Flash IDE。

于 2008-09-12T14:08:11.483 回答
11

是的,我也为此困惑了好一阵子。

Flex 似乎是“Flex Builder”IDE(基于 Eclipse)的名称,也是使用mxml和 ActionScript 而不是普通的 flash 工具构建 flash 文件的一般方法。

我认为 mxml 和 ActionScript 方法(即 Flex)旨在更吸引程序员,而 Flash 方面的设计更吸引图形设计师。

任何一种方法的最终结果都是一个 .swf 文件,它可以在浏览器的 flash 播放器插件中运行(尽管如果您想要访问文件系统并离线运行等,则可以使用 Flex 来定位 Adob​​e Air 运行时)。

我的建议是,如果您有编程背景,请从 Flex 开始。

于 2008-09-12T14:13:59.470 回答
8

Flex 和 Flash 有什么区别?

我记在心里,向别人解释的方式是这样的:

为您要创建的内容选择正确的工具。

如果您想使用 Flash 技术编写应用程序,请使用 Flex。

如果您想使用 Flash 技术创建动画,请使用传统 Flash。

Flex 已针对应用程序构建进行了优化(但您可以使用状态创建原始动画)并将其编译为 SWF。

Flash 针对动画构造进行了优化,但您也可以通过一些额外的工作创建应用程序,并将其编译为 SWF。

有了 SWF 后,您就可以在 Flash 播放器中播放了,尽管 Flex 需要 Flash 9 或更高版本。

综上所述

应用程序 -> 弹性 -> SWF

动画-> Flash -> SWF

希望这可以帮助。

于 2008-09-16T03:10:20.563 回答
6

部分困惑是“Flash”意味着多种事物。Flash 可能意味着众多应用程序之一,或者 SWF 背后的一般技术。

Adobe 销售的Flash CS3产品。这通常针对设计人员,并使用基于时间线的方法来创建 SWF。以前,Flash 产品是创建 SWF 的唯一方法,而 SWF 通常仅用于动画和其他浏览器中无法实现的视觉效果。

然后是Flash Player。这是用于运行 SWF 的应用程序/插件。SWF 也可以包装在“投影仪”中,允许它们作为独立应用程序运行,但这并不常见。

在某个时候(我不知道是什么时候)Flash 开始被用于更具交互性的应用程序。Flash 产品不太适合这种工作,因为它是为创建动画而设计的。认识到这一点,Macromedia 创建了Flex。Flex 是另一种用于创建 SWF 的开发环境,但它更多地针对开发人员而不是设计人员。最新版本是Flex 3Flex SDK是免费提供的,包括命令行编译器、调试器和类库。Adobe 还提供(购买)Flex Builder应用程序,这是一个基于 Eclipse 的 IDE,用于使用 Flex 创建 SWF。有一些免费的 IDE 可以使用 Flex,最著名的是FlashDevelop,虽然我不知道有任何提供 MXML 的可视化设计器、Flex 用于定义 UI 的标记语言或调试器的可视化包装器。

如果您从开发人员的角度接近 Flash,那么您会想要使用 Flex。它可能更接近于您习惯处理的内容,并且似乎是 Adob​​e 总体上推动 Flash 的方向。

于 2008-09-12T14:25:25.590 回答
3

Flash是一个运行时环境- 您使用 Flash 创作工具制作一些 Flash 内容,Flash 播放器处理您的内容、执行脚本并将适当的图片绘制到屏幕上。

Flex是一个开发框架——您使用 Flex 开发工具来定义基于组件的内容应该如何工作,然后 Flex 为您生成 Flash 内容。您可以使用 Flash 创作工具制作相同的东西,但使用 Flex 可以让您避免重新发明一些轮子。

从功能上来说,Flash 是一个非常通用的运行时;它给了你很多自由去做任何你想做的事情。但是,如果您正在构建一个贷款模拟器,您可能不需要自由地精确定义所有下拉菜单和屏幕转换的工作方式。可能您宁愿只为这些东西使用预制组件,这样您就可以专注于贷款的东西。Flex 可以让您做到这一点,但如果您决定确实需要很大的自由来更改所有精细的细节,这可能会导致大量工作。

于 2008-09-16T05:59:31.250 回答
3

这是另一个基于您如何描述要开发的应用程序的简单视图。

您是否希望它具有工作站(例如 Windows)应用程序所期望的高度精细的 UI 功能,以及相当完整的控件集(列表框、组合框、网格等)?

Flex 为您提供。

您是否希望将其交付给大多数浏览器(即安装/可安装 Flash 的任何地方)?

Flex 为您提供了这一点,因为它在 Flash 虚拟机中运行。

您是否还希望能够提供它在操作系统中运行,而不是在浏览器中运行(代码更改最少?)

Flex 可以通过允许您运行它,而不是在 Flash VM 中,而是在 Adob​​e AIR VM(有 Windows、Mac 和 Linux 版本)中为您提供这一点,它为常见的操作系统资源(如文件系统、操作系统对话框)提供包装器-box UI 组件(例如“打开/文件/等)

您可以使用 javascript 作为开发语言吗?你需要,因为它是唯一支持的语言,以 ActionScript 的形式,它是 javascript 的正确超集 - 它直接接受 javascript 代码。

所以分割的部分是:

  1. 运行时环境,Flash 浏览器插件或 AIR 运行时(本机操作系统等效项)。

  2. Actionscript 作为开发语言。

  3. 一堆控件库和其他资源,即典型的 Window、Frame、Combobox、Listbox、Image container、TextBox、TextArea、a wysiwyg-y RichTextArea 等)这些都是 Flex 的省。

仅使用上述资源,您就可以使用免费的命令行编译器以与使用任何其他带有库的命令行编译器语言相同的方式构建应用程序。

然后,如果您想要一个花哨的 IDE,可以使用 Flex Builder,它是对优秀 Eclipse 的一组扩展(几百美元)。或者还有其他几个或多或少等效的 IDE。

于 2008-11-08T22:46:23.040 回答
3

Flex 是一个框架FlexBuilder 是一个IDE (为了解决两者之间的混淆,adobe 正在将 FlexBuilder 重命名为 FlashBuilder)

如果您不知道什么是框架

Flex 之于 Flash 就像 CodeIgniter 之于 PHP

或喜欢什么.net

我喜欢将框架视为扩展语言,就像在 OOP 中扩展类一样。

于 2010-02-16T21:07:33.903 回答
2

Flex 是一个开发框架,将 xml 和 actionscript 编译成 SWF,运行在访问网站的客户端机器上。它还可以使用 Adob​​e AIR 作为桌面应用程序运行。Flash 使用绘图画布而不是 xml。编译后的 SWF 可以称为 Flash,这增加了混淆。您可能会发现 Flex 类似于 ASP.NET,它采用 xml 和 c#(vb.net 等)并编译成 dll。当然,ASP.NET 在 Web 服务器上运行。

如果您为应用程序在 Flex 和 Flash 之间进行选择,请考虑该应用程序是否将基于数据。如果您想制作一个漂亮的电子表格应用程序,Flex 将是您的最佳选择。如果您正在创建视频游戏或某种演示文稿,您可能需要 Flash。

于 2008-11-08T21:56:41.953 回答
2

在此之后,我发现了一篇关于该主题的非常有用的文章:

Adobe Flash 和 Flex — 哪个对您的项目最有意义?

Flash 集成开发环境 (IDE),在当前版本中也称为 Flash CS3,是开发角色动画或线性动画项目的理想工具。这些项目需要很少的编码,并且可以使用 Flash IDE 时间线有效实施。

换句话说,Flash CS4 与时间线的绑定非常紧密——适用于线性序列或动画。虽然人们可以以跳转到时间轴上的新点的形式添加循环和交互性,但它对于无法轻易根据时间进展进行规划的项目是有限的。

简单来说,它是一种具有非常强大的交互功能的动画工具——动态创建和组合新元素,以及在时间轴上跳转允许创建应用程序,而 Flash CS4 IDE 使这相对容易,但事实并非如此应用风格软件的绝佳平台。

Flex 就是为了解决这个问题而构建的——虽然它使用相同的元素并公开代码,但它不受时间线的约束,并且与面向对象的编程语言相比动画语言有更多的共同点。

Flex Builder IDE 包括编程 IDE,以及用于快速构建界面的 GUI 设计器,以及用于开发在 Flash 播放器上运行的应用程序的一些其他工具。

于 2009-04-22T15:10:47.827 回答
1

Flex 和 Flash 有不同的目标受众。Flex 更适合开发人员,而 Flash 更适合设计师和艺术家。

于 2008-09-12T14:09:48.593 回答
1

Flashdeveloper 被称为开发弹性应用程序的免费工具。我只想添加一个免费工具来设计应用程序(使用设计器创建 MXML 文件):designview。它可以直接在 adobe 网站上获得,它是一个基本的空中应用程序,但可以自由轻松地查看 flex 的可能性。

于 2008-09-18T06:50:09.457 回答
1

Flex 是一个基于 ActionScript 的免费开源框架,用于开发 SWF 和 AIR 应用程序。Flex Builder(为了避免混淆,现在重命名为 Flash Builder 第 4 版)是 Adob​​e 的一个商业 IDE,用于使用 flex 框架开发 SWF/AIR。虽然 flash (CS3) 适用于动画相关的东西,但 flex 适用于应用程序/ui 相关的东西。Adobe 将 flex 定位为 RIA(富 Internet 应用程序)框架。

于 2009-09-23T11:44:02.513 回答
1

Flex 也可以在 Linux 上运行,而 Flash 不能。
Flex 有点像 Flash CS 4 第二版。

Flex 的图形化程度较低,因为它将编译器和 IDE 分开,从而允许命令行编译(可以说是 makefile、大型项目),从而允许使用 Flash 的替代 IDE。

编辑:
Flex 缺少一些 Flash CSX 具有的类(例如 fl.controls),而 Flash 缺少一些 Flex 具有的类(例如 mx.controls 或 mx.alert)。

总而言之:
您可以通过下载 Flex 4 SDK 和 FlashDevelop 免费拥有自己的 Flash 编译器。但它不能替代 Flash。
Flash 生成的文件要小得多(例如,Flash 将项目编译为 100 kB,而 Flex 将同一项目编译为 500 kB)。所以Flash适用于互联网多媒体应用,而Flex适用于桌面多媒体应用。

于 2010-03-02T15:44:09.377 回答
1

Flex Builder 3 --> Flash Builder 4,即使您将它用于 Flex。您也可以将它用于 Flash。如果你真的想了解所有这些东西,你应该只买一天的老兵午餐,因为它会节省你几个月的时间。Adobe 制作了一些很酷的产品,但同时也是众所周知的懒惰公司,这导致文档极差。除非您是“livedocs”的粉丝,这是 Adob​​e 用来描述“缓慢而臃肿的 HTML”的术语。

于 2010-06-05T07:00:49.627 回答
0

“Adobe Flex 是 Adob​​e Systems 发布的一系列技术,用于开发和部署基于专有 Adob​​e Flash 平台的跨平台富 Internet 应用程序。”

Adobe Flex

于 2008-09-12T14:08:55.130 回答
0

Flash 是一种编程语言,与 JavaScript 非常相似,但支持静态类型。

Flex 是一个 Flash 库,旨在帮助人们在更高级别上使用 Flash 进行编程。

将这看作是 Flash 上的 Flex 就像 C++ 上的 MFC 对某些人可能会有所帮助。

于 2008-09-12T14:14:16.600 回答
0

Flex 基本上是一种编译成 Flash“电影”或“小程序”的语言,它们将在 Adob​​e Flash 播放器插件中运行。

于 2008-09-19T02:59:37.723 回答
0

简单来说,Flex 技术使用 MXML 来创建应用程序。MXML 类似于 HTML,而 Flash 组件类似于表单元素。

MXML 基本上允许您指定在应用程序屏幕上显示哪些 Flash 组件(例如表格、下拉列表或您在 Flash 中构建的自定义内容)。

这是一个非常简单的答案,但这就是我倾向于解释 Flex 的方式。

(Flex Builder 是您开发 Flex 应用程序和 Flash 应用程序的环境)

于 2009-11-20T05:39:33.503 回答
0

Flex 不是一种编程语言。flex 是一个用于在 Flash 运行时开发富 Internet 应用程序的框架,包括 ActionScript 和 MXML 作为语言。

于 2012-09-30T18:52:05.337 回答
0

Flex 是用于构建跨平台富 Internet 应用程序的技术、工具和框架的集合。

于 2012-09-30T18:56:54.753 回答
0

我为“什么是 Flex”找到的最佳答案位于此页面: http: //www.adobe.com/products/flex/faq.html#flex-flash

搜索“Flex 与 Flash 有何不同?”

我对此的解释是,如果您的应用程序是从 Flash Professional 生成的,那么它就是一个“Flash”应用程序。如果它是使用 Flex SDK(Flash Builder、Flash Develop 或直接代码和命令行工具)生成的,则它是一个“Flex”应用程序。“Flash”应用程序和“Flex”应用程序都编译成可以由“Flash Player”或“Adobe AIR”运行的字节码。这两种类型的应用程序都可以包含“Actionscript”代码。

于 2013-04-19T01:01:52.613 回答