Flex、Flash和ActionScript 3.0之间的关系是什么?

15

我正在开发一个使用ActionScript 3.0和Flex SDK的项目。这个项目是使用Eclipse IDE构建的。我想知道Flex SDK是否用于在Eclipse中支持ActionScript 3.0。

ActionScript 3.0与Flash之间的关系是什么?

4个回答

19
  • Flash(现在称为Adobe Animate):是工具的名称(官方名称为Adobe Flash Professional CC(以前是CS#),但通常称为Flash IDE),也是平台的名称。 Flash平台包括此列表中的所有内容,以及更多内容。 “Flash”还可能指Flash SWF文件,即编译后的应用程序。

  • Flex:使用MXML和ActionScipt的框架。包括许多小部件、类等,可快速构建丰富的应用程序。

  • ActionScript 3.0:用于在Flash平台上创建逻辑和交互的编程语言。

  • MXML:由Flex框架使用的声明性标记语言。

  • Flash Player:“播放”Flash SWF文件的运行时环境。

  • Flash Builder:(以前称为Flex Builder)基于Eclipse的代码IDE,由Adobe开发。用于为Flash平台编写任何内容,包括ActionScript、Flex、AIR等。还可以与Flash IDE完美集成。

  • Adobe AIR:Adobe Integrated Runtime。跨操作系统运行时,可让您创建运行并与桌面集成的Flash应用程序。

  • Flex SDK:开发工具包,包含用于构建Flash、Flex和AIR应用程序的一堆工具。它包含Flex编译器,可用于编译您的Flash项目,包括仅AS3项目。

关于Flash平台的良好概述: http://www.adobe.com/devnet/flashplatform/articles/flashplatform_overview.html

其他进一步阅读的链接: Flash正在被重新定义, Flash不是垫脚石!


1
+1 我觉得这是迄今为止最准确的答案。正式来说,Flash IDE 是“Flash Professional”,而我已经养成了称它为“Flash Pro”的习惯,以区分它和 Flash Player。 - JeffryHouser
1
我点赞了它,但感觉这种方式错过了它们彼此之间的联系...尽管我仍然喜欢我的答案,但这是一个很好地阐述每个部分作为独立实体的解释。 - shaunhusain

17

这是一个好问题,也是许多人容易混淆的问题之一。

- Flash

您将会意识到的所有歌舞风格和矢量图形 - 这主要被视为视觉效果。当您打开Adobe Flash时,它是构建动画转换为二进制代码的接口。

- Actionscript 3

这始于作为Flash图形辅助的小型变量。正如您所知,它已经发展成为基于ECMA标准的完整语言。这就是为什么它非常类似于Java和JS等语言。

- Flex

从这里开始可能会有些混淆。

Flex有很多形式。

  1. 它是一种XML样式语言,可以让您通过标记语言构建“flash”内容,而不是自己全部绘制。
  2. 这开始成为基于MXML(Macromedia XML)语法的稳定组件集。
  3. Flex使用此MXML语法包装几乎整个AS3语言,因此成为一个框架。

现在使用Flex作为前端标记与AS3逻辑相关联已经成为常态。

令许多人惊讶的是,即使是那些从事此行业的人,Flex MXML也会在编译运行时编译成原始的AS3代码,然后在部署SWF时使用。 - *编辑:

这就是为什么它就像一种解释型语言一样。


在构建Flash应用程序时,您可能会使用这些元素的组合。

主要是AS3和Flash相互配合。 AS3和Flex再次结合在一起。 您可以在Flash中创建Flex组件。


请注意,这不应与Flex IDE混淆-这不是框架。 Adobe最新版本的软件已被命名为“Flash Builder”以避免混淆。


1
你能提供一下关于 MXML 运行时编译的声明的链接吗?我原本以为 MXML 会在编译时转换成 AS3 代码,然后将该代码编译成字节码(以 *.swf 的形式),最终在运行时进行解释执行。 - Courtney Christensen
2
这个回答很多都是正确的,但我觉得有些还是不够完整。当你谈到“Flash”时,似乎实际上是指“Flash Professional”。Flash是“Flash平台”生态系统的通用术语,包括工具(Flash Pro、Flash Builder、Flash Catalyst)、运行时(Flash Player、Adobe AIR)以及框架/SDKS(Flex、OSMF、TLF)。Flex是一个SDK,其中包括ActionScript UI框架、UI库、命令行编译器和其他工具。将AS3封装在MXML中的过程并不能使其成为一个框架。MXML就像是AS3的“代码生成”语言。 - JeffryHouser
1
@zourtney 你的印象和我一样。第一次阅读时,我错过了那个“加粗”的声明。尽管有一些其他好的部分,但我不得不-1答案,因为存在严重的技术错误。如果你想看到从MXML生成的AS3代码,可以使用“keep-generated-actionscript”参数。 - JeffryHouser

7
  • Flash是运行时环境
  • ActionScript 3.0是Flash平台的编程语言
  • Flex是一个ActionScript框架

1
Flex是一个完整的SDK,其中包括不仅仅是ActionScript框架,还包括编译器等组件。 - JeffryHouser

5
我认为它们之间的联系比Shaz所说的更紧密。具体来说,ActionScript Bytecode是其核心。MXML是一种标记式语言,是XML,并且可以使用在MXML或AS中定义的类,同样,您也可以使用MXML文件与AS。工作方式是将mxml编译成中间AS3,然后将该AS3以及任何其他AS文件编译成Actionscript Bytecode(ABC),并将其全部链接到swf文件中。Flash Player是浏览器的插件,解释abc(它是在浏览器中运行的虚拟机,将ABC解释为机器代码)。如果您使用Flash IDE开发应用程序,则会发生相同的事情,库资产和时间轴会被编码为ABC并链接到swf中。
Flex是一组类(也称为库),可使应用程序开发更加容易(定义常用控件,如按钮,单选按钮和常见动画,淡入淡出移动坐标等)。再次进行相同的编译和执行路径。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接