我应该使用Flash还是Flex?

时间:2010-09-27 19:10:26

标签: flex flash adobe flexbuilder

在SO,我问我应该用什么语言来创建一个网络应用程序,用来捕获用户网络摄像头的视频,并在他点击“提交”时将其发送到服务器,答案主要是Flash。

但是在网上搜索时,我对这个Flash / Flex事情感到困惑,因为他们说Flash是制作动画而Flex是真正创建网络应用程序。

那我该怎么用?通过Flash他们意味着Flex?或者像Flash这样的程序没问题?我应该使用Flash Pro吗?还是Flash Builder?学习ActionScript或XMXL?

在网上看起来有很多内容,但是我读的越多,我就越感到困惑。

提前致谢。

4 个答案:

答案 0 :(得分:11)

我建议使用Flex编写此应用程序。主要是因为我认为Flex工具链比Flash Professional更好 。虽然您的问题中没有任何内容似乎真的需要Flex框架,但您可能会从使用它中受益。不仅因为它的优越开发环境,而且因为Flex框架中的一些东西使得处理数据变得更加容易。

无论如何,这里的术语似乎有很多混淆,所以我会尝试清除一些事情:

免责声明:这绝不是闪存所有内容的综合列表。虽然我尽力做到事实,但为了简洁,我很可能遗漏了一些重要的细节(嘿,至少我试过了),而在其他情况下,我可能只是错了。关于考虑来源的常见警告适用。

  • Flash播放器,提供渲染矢量和光栅图形以及在虚拟机中运行用户代码的功能。播放器是Flash平台的核心,允许内容在多个平台上运行(通常无需任何平台特定的修改。)播放器中有相当多的API实际上是本机代码,但可以从ActionScript调用。

  • ActionScript 是Flash平台的首选语言。还有其他一些,尤其是Haxe,但Adobe的工具不支持它们。该语言有三个版本:ActionScript 1,2和3.前两个在Flash 9之前使用,它引入了一个完全重写的虚拟机(AVM2),因此也引入了AS3。以前的语言在名为AVM1的旧虚拟机中运行。为AVM1生成的较旧内容可以在较新的支持AVM2的播放器中运行。但是,它们仍将以AVM1模式运行,以保持向后兼容性。 Flash实际上非常好地处理了向后兼容性。

  • Flash Professional ,也称为Flash IDE,是生成Flash内容的工具的名称。它最初只是一种创建动画的方式,但由于flash电影格式具有脚本功能,因此该工具也是如此。然而,脚本长期以来一直是这个工具的私生子。虽然过去几个版本在这方面已经有所改进,但与其他更加以开发人员为中心的环境相比,它仍然相形见绌。此工具仅编译纯ActionScript项目,不用于开发Flex应用程序,通常被认为比开发人员友好设计更友好。

  • Flex 是Adobe企业应用程序框架的名称。 Flex有一些关键技术,它不仅仅是一个核心功能库。我将尝试简要地解释下面框架的关键技术。 Flex SDK实际上是开源的,可以自由地用于开发应用程序。但是,虽然它包含构建Flex应用程序所需的任何内容,但它实际上并不包含IDE。

    • MXML 是一种声明性语言。它通常用于声明性地定义视图,但可用于许多事情。例如,swiz framework利用MXML使用IoC以声明方式定义依赖关系。 swiz当然还有很多,但这超出了这个答案的范围。

    • MXMLC& COMPC 是用于编译flex项目的两个编译器。前者用于编译swf应用程序,后者用于编译swc库。

    • 核心库等包括两个标准组件集:MX和Spark;前者通常被称为Halo。 MX是一个较旧的组件集,虽然仍然受支持,但被认为已弃用,一旦Spark达到MX的功能奇偶校验,它可能会逐步淘汰。然而,这两个组件集在很大程度上彼此兼容,并且可以在相同的应用中很好地共存。提供的其他值得注意的功能是非常全面的数据访问和管理功能,包括基于文本的数据,如XML或JSON以及二进制数据(AMF。)

      该库通常被称为 Flex Flex框架

  • Flash Builder 是Adobe用于开发Flex应用程序的IDE。虽然可以使用它来开发纯AS3应用程序,但它最常用于开发Flex应用程序。它是一个不错的IDE,在现代开发环境中提供了大多数功能,但有一些流行的替代方案,如PowerFlasher's FDT。虽然Flex SDK是免费和开源的,但Flash Builder既是专有软件,也是商业软件。

答案 1 :(得分:4)

这不完全正确。您可以使用Flash Professional在本机Actionscript 3中开发和编写代码,同时还可以在Designer级别开发创建图像/动画等等。

要回答您的问题,如果您希望使用MXML进行编码,则需要使用Flash Builder。如果要在本机AS3中编写,可以使用两者中的任何一个。但是,根据个人经验,两者都可以使用本机AS3获得更多自由。此外,对于您希望进行的应用程序类型,性能可能是非常重要的,因此建议使用AS3进行完全控制。

编辑:此外,如果您熟悉C ++或Java,或任何其他面向对象,我相信ActionScript3中的编程将非常像家一样。

答案 2 :(得分:3)

IMO说明了一切: Flash Professional 适用于设计人员, Flash Builder (Flex)适用于程序员。

使用Flash Builder,您必须学习MXML和ActionScript。 MXML用于GUI的声明性布局,ActionScript是编程语言。

答案 3 :(得分:1)

“Flash”是整个平台的名称(想想像.NET或Java)。 “Flex”是在 Flash上​​构建的框架的名称。因此,通过使用Flex,您在技术上也可以使用Flash。

开发的两个主要选项是Flash Professional IDE和Flex(通过编译器或Flash Builder IDE手动完成)。不同之处在于您创建用户界面的方式:在Flash Professional中,您可以直观地设计元素,而使用Flex,您可以使用MXML对其进行编码(尽管Flash Builder也提供了更基本的可视化设计器)。这两个工具都将ActionScript用于应用程序逻辑,尽管Flash Professional将其用作脚本语言而不是传统的编程语言。

由于您将进行更多编程而不是设计,因此Flex更适合您的应用程序,IMO。要开始使用,请查看Learn Flex in a Week