我应该使用Flash还是Flex?

6
在SO上,我询问了应该使用哪种语言来创建一个Web应用程序,该应用程序可以从用户网络摄像头捕获视频,并在他单击“提交”时将其发送到服务器,答案大多是Flash。
但是,在搜索网络时,我对Flash / Flex的事情感到困惑,因为他们说Flash是制作动画的,而Flex是真正创建Web应用程序的。那么我应该使用什么?他们所说的Flash是指Flex吗?还是对于这样的程序Flash就可以了?我应该使用Flash Pro.还是Flash Builder?学习ActionScript还是XMXL?
看起来网上有大量关于此内容的文章,但是我读得越多,就越感到困惑。
提前致谢。
4个回答

11
我建议使用Flex编写此应用程序。主要是因为在我看来,Flex工具链比Flash Professional要好得多。虽然你的问题中似乎没有什么需要Flex框架的东西,但你可能会从中受益。不仅因为它拥有出色的开发环境,而且还因为Flex框架中有一些东西使处理数据变得更加容易。
无论如何,在这里术语方面存在很多混淆,所以我会尝试澄清一些事情:
免责声明:这绝不是关于Flash的所有内容的全面列表。虽然我已经尽力保证准确性,但我可能因为简洁起见遗漏了一些重要的细节(至少我尝试过),在其他情况下可能会出现错误。请考虑信源时请注意常规警告。
  • Flash播放器提供了呈现矢量图形和光栅图像以及在虚拟机中运行用户代码的能力。播放器是Flash平台的核心,使内容可以在多个平台上运行(通常无需进行任何特定于平台的修改)。播放器中有一些API实际上是本地代码,但可以从ActionScript中调用。

  • ActionScript是Flash平台的高级语言选择。还有其他语言,最值得注意的是Haxe,但它们不受Adobe工具的支持。该语言有三个版本:ActionScript 1、2和3。前两个在Flash 9之前使用,后者引入了完全重写的虚拟机(AVM2),因此也引入了AS3。旧版的语言在称为AVM1的较旧虚拟机中运行。为了保持向后兼容性,旧版内容可以在新的启用AVM2的播放器中运行。Flash实际上非常好地处理了向后兼容性。

  • Flash Professional,也称为Flash IDE,是制作Flash内容的工具名称。它最初只是用于创建动画,但随着flash电影格式具备脚本功能,该工具也具备了脚本能力。然而,脚本一直是该工具的问题儿童。虽然过去几个版本在这个领域看到了改进,但与其他更注重开发人员的环境相比仍然显得不足。该工具仅编译纯ActionScript项目,不用于开发Flex应用程序,通常被认为比开发人员友好。

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

    • MXML是一种声明性语言。它通常用于声明式定义视图,但可以用于许多其他事情。例如, swiz framework利用MXML通过IoC声明式定义依赖项。当然,swiz还有很多内容,但这超出了本答案的范围。

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

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

      该库通常称为FlexFlex框架


1
我会将Flash平台与Flash播放器分开。Flash平台是Adobe对播放器(Flash Player,Adobe AIR)和工具(Flash Catalyst,Flash Builder,Flash Pro,Flex Framework)的总称。Flash播放器只是Flash平台中的一个“部分”。Adobe的人们也会说他们并没有把所有的“Flash Builder”开发都集中在Flex上,尽管我们可以争论这是否属实。但总的来说,这是一个很好的回答。 - JeffryHouser
当然,你是对的,感谢你的反馈!我已经更新了答案,使其更加准确。不过,我选择完全不提及"Flash平台"这个术语,因为我觉得它可能只会让人困惑。 - Marcus Stade
感谢您提供了一份出色的答案,解释了其中的差异。 - StudioWorks

4

这并非完全正确。您可以使用Flash Professional来开发和编写本地Actionscript 3代码,同时还能在设计师层面上创建图像/动画等。

回答您的问题,如果您想要使用MXML编码,那么您需要使用Flash Builder。如果您想要使用本机AS3编写,则可以使用其中任何一种。两者都可以工作,但从个人经验来看,使用本机AS3会更自由。此外,对于您想要制作的应用程序类型,性能可能是非常重要的,因此推荐使用AS3以获得完全控制。

编辑:此外,如果您熟悉C++或Java或任何其他面向对象的编程语言,我相信在ActionScript3中编程会感觉非常亲切。


2
我同意。Flash Builder是更好的开发者IDE,但我更喜欢编写纯AS3。像Flex这样的框架可以在你知道很多需求被支持的情况下带来好处,但当你想要更自定义的解决方案时,它们往往会让生活变得更加困难。 - Allan

3

我认为这就是答案: Flash Professional 是给设计师用的,而 Flash Builder(Flex)则是给程序员用的。

使用 Flash Builder,你需要学习 MXML 和 ActionScript 两种语言。MXML 用于声明式 GUI 布局,而 ActionScript 则是编程语言。


1
"

Flash是整个平台的名称(类似于.NET或Java)。Flex是建立在Flash之上的框架。因此,使用Flex就是技术上也在使用Flash。

您的两个主要开发选项是Flash专业版IDE和Flex(通过编译器手动操作或通过Flash Builder IDE)。区别在于如何创建用户界面:在Flash专业版中,您可以直观地设计元素,而使用Flex则需要使用MXML进行编码(虽然Flash Builder也配备了一个更基本的可视化设计器)。这两种工具都使用ActionScript进行应用程序逻辑,不过Flash专业版将其更多地用作脚本语言而不是传统的编程语言。

由于您将要做的事情比设计更多,所以我认为Flex更适合您的应用程序。要开始,请查看 Learn Flex in a Week

"

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