在SO,我问我应该使用什么语言创建一个Web应用程序,用于从用户网络摄像头捕获视频,并在他点击"提交"时将其发送到服务器,答案主要是Flash.
但是在网上搜索时我对这个Flash/Flex事情感到困惑,因为他们说Flash是制作动画而Flex是真正创建网络应用程序.
那我该怎么用?通过Flash他们意味着Flex?或者像Flash这样的程序没问题?我应该使用Flash Pro吗?还是Flash Builder?学习ActionScript或XMXL?
可能看起来网上有很多关于这个的内容,但是我读的越多,我就越感到困惑.
提前致谢.
我建议使用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框架利用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的FDT.虽然Flex SDK是免费和开源的,但Flash Builder既是专有软件,也是商业软件.