什么是Adobe Flex?只是Flash II吗?


82

好吧,我对所有流行语和持续不断的新闻发布感到困惑。

  • flash和flex之间是什么关系:
    • 更换闪光灯(并非真正兼容)
    • 增强闪光
    • 下一版本的Flash,但仍基本兼容
    • 完全分开的技术
    • ???
  • 如果我现在开始使用Flash,是否应该跳到Flex?

跟进

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

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

它是否正确?

-亚当


1
具体地说,“ Flex Builder”是Adobe IDE的名称,“ Flex SDK”是库。

@Shawn,能否请您对问题本身进行评论,指出问题,以便可以纠正它们?我愿意更改选择的答案,但简洁明了,可以解决问题。其他答案是一项繁琐的通读,或者没有比Adobe的营销产品提供更多帮助。
亚当·戴维斯

Flash是插件。另外两个是错误的和/或误导的。动作脚本是正确的;但请补充,它是javascript的专有超集(但您可以使用javascript)。Flex是2个半可互换的库;一个用于浏览器,另一个(AIR)用于桌面(即不是浏览器)。
dkretz

IDE是Flex Builder。
dkretz

2
他们将其重命名为Flash Builder。
09年

Answers:


34

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

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

更正: 术语“ Flash”也用于指设计人员使用的Flash IDE。


6
Flash也是“发展”方面。Flex和Flash是Adobe用于生成“ Flash内容”(aka SWF)的两种不同产品。
Herms

3
错了 “ Flash Player”是您目标的运行时。Flash IDE和Flex Builder是创建内容的两种替代方法。
伊恩

没错,它不完整。从开发人员的角度讲,因为我从未使用过Flash IDE。我将编辑答案以使其完整。

1
从技术上讲,Flex只是动作脚本3之上的框架,该框架可编译为运行在Flash Player中的swf。Flash(IDE,CS套件的一部分)是生成在Flash Player中运行的swf的另一种方法。尽管Flash IDE通常更适合创意专业人员,而flex(框架)和flexbuilder(编程IDE)则更适合程序员和开发人员。
Ryan Guill

1
进一步扩展:Flash IDE以时间轴/ MovieClip为中心,而Flex(和Flex IDE)则专注于状态和状态转换。Flash应用程序通常分为两类(或两部分)–具有动画的应用程序,其中时钟在运行,对象平滑地移动/更改(通过补间);以及将时间线分为离散的部分(通常只有一个帧),每个部分都有一个“ stop()”,并且很少或根本没有使用动画。
Mark Laff

134

Flash一词可以包括以下定义的任何其他术语,我发现说“ Flash”而未确切说明您的意思可能会造成混淆和误导。举例:我不确定您在问题中说“ Flash”时的具体含义。是Flash Player吗?创作工具?抑或是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时才支持新功能。创建新内容。

柔性是一组技术,旨在创建针对Adobe Flash运行时的丰富应用程序。尽管之前说过“ Flex”与“ Flash”具有相同的歧义,但Flex品牌名称越来越集中于Flex框架和SDK,如下所述。

所述的Flex SDK包括编译器,一个命令行调试器,和Flex框架。包括的编译器为:1. MXMLC,ActionScript和MXML编译器,用于输出最终的SWF文件以部署到Flash Player。2. COMPC,一种用于ActionScript的静态库编译器,可输出SWC文件。3. ASDOC,基于编译器技术的文档生成器。

Flex框架是旨在建立富互联网应用程序的ActionScript类的集合。它包括用户界面控件,Web服务和其他连接类,格式器和验证器,拖放,模式窗口和组件状态之类的东西。这些类在mx。*包中。通常,当开发人员在没有任何澄清信息的情况下说“ Flex”时,它们是指Flex框架,而不是以前称为Flex Builder的产品。

2011年,Adobe将Flex SDK捐赠给了Apache软件基金会。它现在称为Apache Flex,由社区而不是Adobe进行完全管理。但是,Adobe员工继续为该项目做出贡献,Flash Builder(请参见下文)继续支持Apache Flex项目发布的新SDK。

MXML是Flex编译器使用的基于XML的标记语言,可简化布局并将组件放置到容器中。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创作工具中编译其项目,同时在Flash Builder中编写其代码。这些开发人员通常也是设计师,或者与其他设计师一起工作。在这种情况下,可能会在Flash创作工具中创建许多图形资产,并且将它们带入另一个环境可能很困难或根本不合适。

Flex框架专门用于构建应用程序。它包括许多传统的表单控件(按钮,列表,数据网格等),并且许多代码都在用ActionScript编写的高级组件框架上运行。并非每个人都在构建Flex旨在创建的那种内容,并且Flex并不能为每个人替代传统的Flash开发实践。对于某些开发人员而言,这是一种更好的方法,但对于其他开发人员而言可能并不正确。更多设计繁重的网站,例如为电影,音乐,能量饮料,广告活动而创建的网站,可能不应该使用Flex框架。这些类型的内容可能更适合Flash Professional或Flash Builder中的纯ActionScript项目。同样,您放置在网站侧栏或社交网站中的个人资料中的小部件可能需要使用纯ActionScript(无Flex框架)构建,因为它们需要较小的文件大小并且可能不需要复杂的文件专为大型应用程序设计的组件体系结构。以Flash运行时为目标时,应根据项目的要求和目标选择开发环境,框架和工作流。


5
您忘了提到Adobe Air,它是用于在桌面上运行Flash / Flex RIA应用程序的平台。
罗兰·特普

4
另外,Adobe最近宣布,尽管将保留“ Flex SDK”和“ Flex Framework”,但他们将把“ Flex Builder”产品的名称更改为“ Flash Builder”。
亚当·尼斯

请原谅我,如果我提出一个小问题。.(也许它也可以帮助您理解上述技术之间的差异):Flash Professional和Flash builder中,哪一个是创建您自己的Flash游戏的首选创作工具?通常在Flash游戏网站中找到?
jj_

1
我不认为通常比其中任何一个更受欢迎。具有更多以设计为中心的背景的人倾向于使用Flash Pro。它具有许多用于绘制的可视化工具,您可以在“图层”和“符号”库中组织事物。有点像结合了代码编辑器的Photoshop或Illustrator。具有以编码为中心的背景的人倾向于使用Flash Builder。Flash Builder更像Visual Studio或IntelliJ IDEA,几乎完全专注于编辑代码。您可以使用代码绘图或嵌入外部艺术品文件。两者都是构建游戏的完美有效环境。
乔什·廷贾拉

11

是的,我也为此感到困惑了一段时间。

Flex似乎是“ Flex Builder” IDE(基于Eclipse)的名字,也是使用mxml和ActionScript而非常规Flash工具构建Flash文件的通用方法。

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

两种方法的最终结果都是一个.swf文件,该文件可以在浏览器的Flash Player插件中运行(尽管使用Flex,如果您要访问文件系统并脱机运行,则可以定位Adobe Air运行时)。

我的建议是,如果您来自编程背景,则从Flex开始。


投赞成票,因为您在技术上是正确的,但是我想说一起使用FlashDevelop和Flash IDE也是程序员工作的好方法,就像一起使用Visual Studio和Blend一样。这取决于您是否要使用Flex框架或滚动自己的ui组件。
伊恩

8

Flex和Flash有什么区别?

我谨记在心并向他人解释的方式如下:

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

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

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

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

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

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

结论

应用-> Flex-> SWF

动画-> Flash-> SWF

希望这可以帮助。


6

造成混淆的部分原因是,“ Flash”意味着多种含义。Flash可能意味着众多应用程序之一,也可能意味着SWF背后的通用技术。

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

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

在某个时候(我不知道什么时候),Flash开始用于更具交互性的应用程序。Flash产品不是很适合进行某种工作,因为它旨在创建动画。认识到这一点,Macromedia创建了Flex。Flex是用于创建SWF的另一个开发环境,但它的目标更多是开发人员,而不是设计人员。最新版本是Flex 3。所述的Flex SDK是免费提供的,并且包括一个命令行编译器,调试和类库。Adobe还提供(供购买)Flex Builder应用程序,这是一个基于Eclipse的IDE,用于使用Flex创建SWF。有一些使用Flex的免费IDE,最值得注意的是FlashDevelop。,尽管我不知道有谁提供MXML的可视化设计器,Flex用来定义UI的标记语言或调试器的可视化包装。

如果您从开发人员的角度使用Flash,那么您将要使用Flex。它可能与您过去要处理的内容更加接近,并且似乎是Adobe总体上推动Flash的方向。


3

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

Flex是一个开发框架-使用Flex开发工具来定义基于组件的内容应如何工作,然后Flex会为您生成Flash内容。您可以使用Flash创作工具做同样的事情,但是使用Flex可以避免重新发明轮子。

从功能上讲,Flash是一种极其灵活的运行时。它给您很大的自由去做您想做的任何事情。但是,如果您要构建贷款模拟器,则可能不需要自由定义所有下拉菜单和屏幕过渡的工作方式。可能您希望只使用预制组件来制作这些东西,以便您可以专注于借出的东西。Flex可以让您做到这一点,但如果您决定确实需要很大的自由来更改所有细微的细节,结果可能会花费很多工作。


3

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

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

Flex为您提供。

您是否要提供它以使其在大多数浏览器中运行(即在已安装Flash的任何位置)

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

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

通过允许您运行它,Flex可以为您提供此服务,而不是在Flash VM中运行,而在Adobe AIR VM(具有Windows,Mac和Linux版本)中运行,后者为常见的OS资源(如文件系统,OS对话框)提供包装-box UI组件(例如“打开/文件/等”)

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

因此,分割的部分是:

  1. 运行时环境,可以是Flash浏览器插件,也可以是AIR运行时(等效于本机OS)。

  2. Actionscript作为开发语言。

  3. 一堆控件库和其他资源,例如典型的Window,Frame,Combobox,Listbox,Image容器,TextBox,TextArea,所见即所得的RichTextArea等。这些都是Flex的省。

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

然后,如果您想使用精美的IDE,可以使用Flex Builder,它是对good-ol'Eclipse(数百美元)的一组扩展。或者,还有其他一些或多或少等效的IDE。


3

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

如果您不知道什么是框架

Flex与Flash一样,就像CodeIgniter对PHP一样

或像什么.net的。

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


1
实际上,jQuery是API,而不是框架。一个框架就像CodeIgniter。
Metropolis

“ Flex就像Flash一样,Flash就像PHP一样”的+1对我来说是一劳永逸的!
Matical

2

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

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


2

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

Adobe Flash和Flex-哪个项目最适合您?

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

换句话说,Flash CS4与时间轴紧密相连-适用于线性序列或动画。虽然可以以跳到时间轴上的新点的形式添加循环和交互性,但它限制了无法随时间推移进行进度映射的项目。

简而言之,它是一种具有非常强大的交互功能的动画工具-动态创建和合成新元素,然后在时间轴上跳转可以创建应用程序,而Flash CS4 IDE相对来说相对容易,但是并非如此应用程序样式软件的绝佳平台。

Flex就是为了解决这一问题而创建的-尽管它使用相同的元素并公开了代码,但它没有绑定到时间轴,并且与面向对象的编程语言相比,与动画语言有更多的共同点。

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


1

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


1

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


1

Flex是基于ActionScript的免费开放源代码框架,用于开发SWF和AIR应用程序。Flex Builder(现在从版本4起已重命名为Flash Builder,以避免造成混淆)是Adobe的商业IDE,用于使用flex框架开发SWF / AIR。Flash(CS3)适用于动画相关的东西,而flex适用于应用程序/ ui相关的东西。Adobe将flex定位为RIA(富Internet应用程序)框架。


1

Flex也可以在Linux上运行,而Flash则不能。
Flex是Flash CS 4的第二版。

Flex较少图形化,因为它将编译器和IDE分开,从而允许命令行编译(可以说是makefiles,大型项目),从而可以替代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用于Internet多媒体应用程序,而Flex用于桌面多媒体应用程序。


1

Flex Builder 3-> Flash Builder 4,即使您将其用于Flex。您也可以将其用于Flash。如果您真的想了解所有这些知识,则应该只购买一天的老兵午餐,因为这样可以节省您MONTHS。Adobe生产了一些很酷的产品,但也以懒惰而著称,这导致文档非常差。除非您是“ livedocs”的狂热者,否则Adobe会用它来形容“慢而肿的HTML”。


1
一个关于livedocs ..的讽刺,要准确到搞笑!:)
himanshu 2010年

0

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

Adobe Flex


1
太多的人,有太多的人,制造了太多的问题,没有太多的爱去转转,您不能看到-这是一片混乱的土地。(创世纪)
亚当·戴维斯

0

Flash是一种类似于JavaScript的编程语言,但支持静态类型。

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

对于某些人来说,这可能会有所帮助,例如Flash over Flex就像MFC over C ++。


并不是的。语言是ActionScript。Flash和Flex是用于创建SWF的两种不同环境。尽管Flex面向开发人员,而Flash面向设计人员,但是您可以在其中一种中使用ActionScript。
爱马仕


0

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

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

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

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


0

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


0

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


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”或“ Adob​​e AIR”运行。两种类型的应用程序都可以包含“ Actionscript”代码。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.