【转】ActionScript,Flash,Flash/Flex Builder,FlashPlayer,AIR,swf,swc,swz之间的区别
原文链接:http://zengrong.net/post/1295.htm
ActionScript
ActionScript通常简称为AS,它是Flash平台的语言。AS编写的程序,最终可以编译成SWF、SWC。SWF就是我们常说的Flash动画。但是现在SWF已经不仅仅是动画,而是RIA的载体。
ActionScript有3个版本,分别是1.0版(AS1),2.0版(AS2)和3.0版(AS3)。只有Flash Player9及以上播放器才支持AS3编译的SWF。这三个版本的差别非常大,现在最流行的版本是AS3。
Flex与MXML
因为在开发RIA的时候,需要很多常用的功能,例如控件(Button,ComboBox,List……)、布局(VGroup、VBox……)等等……Adobe就开发了一套官方的框架集来实现这些功能,这套框架集就叫做Flex。
为了方便程序员快速编写RIA程序界面,Adobe又实现了一种基于XML语法的语言MXML,这套语言很像HTML,可以与AS混用,MXML最终也是编译成SWF或SWC。Flex框架就是使用AS3与MXML两种语言写成的。但说白了,MXML 外加实现了MXML语法,如果你有兴趣,也可以自己实现这些。Flash和Flex,都是用AS编写,使用swf体现。
Flash
现在Adobe已经将Flash其定义为一个平台(Flash Plantform),包括了Flash IDE、FlashBuilder、AIR、FlashPlayer以及更多。但我们一般讲Flash,有两个意思,一个是指Flash动画(也就是网页上扩展名为swf的动画),另一个就是FlashIDE。
Flash(IDE)从4.0开始进入中国,前期一直在网页动画方面告诉发展,多被用来做网页小广告(让你CPU100%的罪魁祸首之一)和MV(showgood三国系列、小小系列、大学自习室……曾经风靡一时啊)。那时的“闪客”,主要是做动画,即使涉及到编程,也大多是用当时的AS1.0(后来FlashMX2004升级为AS2.0)写一点stop、gotoAndPlay之类的东东了。Flash(IDE)发展到8.0版本以后,才开始大量用于编程,当时比较流行的就是“Flash留言本”等等。相关历史我做了一张图来表示,括号里的数字是年份。

Flash Builder/Flex Builder
AS发展到3.0之后,由于其语法和JAVA比较像,再加上增强的性能与强类型,可以完全脱离FLA文件,使用纯文本编码,受到了许多其他程序员(尤其是JAVA程序员)的青睐。由此得以高速发展,用AS开发程序的人也越来越多。AS在视频网站、游戏行业发展迅速。但是,FlashIDE虽然是一个很好的动画制作工具,却不是一个好的开发工具。于是,Adobe又发布了FlexBuilder,一个基于Eclipse的IDE,并发布了Flex SDK,后来又开源了。
有了免费的编译器,Flex得以快速发展。用FlexBuilder也可以开发纯AS项目(即所有的文件都是as文件,不包含MXML,也不包含FLA)。一个真正的程序猿,应该更愿意使用这种方式吧?FlexBuilder从4.0开始,被Adobe改名为Flash Builder。
Flash Builder和Flash IDE不应该放在一起比较,它们不是一类软件。如果一定要比较一下的话,那么就是FlashIDE比较偏重于设计一点,用它做动画比较方便,当然也可以用它编写AS3程序。用FlashIDE编写的程序,会有一个FLA源文件,可能还包含多个as文件。FlashBuilder偏重于程序,用它可以开发MXML(也就是Flex)项目。也可以用它编写纯AS项目。用FlashBuilder编写的项目,都是纯文本文件(.as或者.mxml)。 对于程序流,当然偏爱FlashBuilder,而设计流比较偏爱Flash
IDE。
当然,IDE并非只有Adobe官方的东西,FlashDevelop就是个免费的IDE。如果你愿意,用记事本做编辑器也没什么不好(比如说zrong就正在尝试VIM),因为SDK和编译器都是免费的。
Flash Player
swf动画需要在网页上显示出来,就需要安装Flash Player。Flash Player的不同版本,其实与FlashIDE也有一定的对应关系(从上图也能看出来)。但到了AS3时代后,这个对应关系就不那么明显了。Flash Player9是能支持AS3 的最低版本(其实前面还有一个Flash Player 8.5,只是没普及就升级到9了),后面的FlashPlayer 都能支持AS3了。关于Flash Player,我写过一篇有史以来关于FlashPlayer的最详细说明,看这个就很清楚了。
AIR
Flash Player再强大,也是运行在浏览器中,受浏览器约束。为了摆脱浏览器,Adobe又出奇招,发布了AIR。AIR其实就是一个Runtime,你可以把它理解成JVM。有了AIR,就可以用AS3开发桌面软件,而且开发出的软件可跨平台运行(这和JAVA的一次编译,随处运行不是如出一辙么!)。目前国内的AIR应用主要集中在网站的客户端方面,例如新浪微博AIR客户端等。
SWF SWC SWZ
SWF
swf是我们见到的最多的Flash平台文件了。是的,它就是Flash平台的最终表现形式。前面说到了,无论是Flex、Flash还是纯AS3,最终编译出来的文件都是swf格式,浏览器中的FlashPlayer插件和独立的FlashPlayer,也只能“打开”swf文件进行播放。前面说到的AIR,它的本质也就是运行时+swf而已。
其实并非所有的swf都能直接播放的。swf有3种:
- 程序SWF(application swf):可以直接在flash player中运行的swf;
- 库SWF(library swf):swc文件中的library.swf;
- 模块SWF(module swf):Flex Module产生的swf文件。
最终用户碰到的绝大多数都是“程序SWF”,而程序猿们碰到后面两种SWF的可能性就比较大。
SWC
SWC是一种库文件,通常用来发布非开源的类。程序猿们将源码编译成SWC文件,并发布API文档,我们就可以使用这些SWC提供的类库进行自己的开发。SWC并不是运行时共享的,而是在编译的时候直接加入了程序SWF中。最终的程序SWF可以脱离SWC运行。
SWC本质就是一个zip文档,其中包含一个library.swf文件和一个用于描述的xml文件,你可以用zip管理器打开它查看。
SWZ
你可能会发现,从TLF出现以来,Flex SDK中多了一个flashx包,这个包中的功能,就是用SWZ实现的。SWZ是在运行时共享的库,你可以将其看作一个可以放在外部的SWC。而且SWZ的共享是平台级别的(MoudleSWF的共享是浏览器级别),存在于操作系统缓存中(ModuleSWF的存在浏览器缓存),只要下载过一次SWZ,你的操作系统中所有用到这些SWZ中的地方(无论是IE、FF、Chrome还是AIR)都不用重新下载。
对于程序猿,这里的关于SWC和SWZ的信息肯定是不够的,所以建议看一下smithfox的swf swc swzRSLs ant,本文的这个部分也是参照它写成的。
全文完
【转】ActionScript,Flash,Flash/Flex Builder,FlashPlayer,AIR,swf,swc,swz之间的区别的更多相关文章
- flash、flex builder、flash builder、 air的关系
flash VS flex builder flash被adobe收购的时候是flash8,已经可以AS2面向对象了. 而被adobe收购后,adobe准备把flash打造成一个开发工具.就比如JBU ...
- Actionscript,AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系
转自zrong's blog:http://zengrong.net/post/1295.htm ActionScript ActionScript通常简称为AS,它是Flash平台的语言.AS编写的 ...
- Flash&Flex大全
官方在线帮助(没标英文的都是中文) 用于 Adobe Flash Platform 的 ActionScript 3.0 参考 更多参考使这样的链接下载离线版:http://help.adobe.co ...
- [转]Flash、Flex、AS3.0框架及类库资源收集之十全大补
原文地址:http://www.d5power.com/portal.php?mod=view&aid=27 APIs.Libs.Components1.as3ebaylibhttp://co ...
- Flash Builder编译的swf为什么在bin-debug下运行正常,复制到其他文件夹就不正常
在Flash Builder/Flex Builder中,可以使用编译参数-use-network=false实现
- Flex Builder 开发语言切换问题
1.Flex Builder 4.6切换语言 打开\Adobe\Adobe Flash Builder 4.6\FlashBuilder.ini -nlzh_CN-startupeclipse/plu ...
- MyEclipse 8.5 开发环境配置,汉化,Aptana2.0插件,SVN 插件,Flex Builder 3/4 插件安装(转载)
转载地址http://elf8848.iteye.com/blog/630864 下载MyEclipse 8.5 可以通过代理http://www.proxyie.cn/访问MyEclipse的官方网 ...
- 推荐几个Adobe Flex Builder 3的插件(代码格式化和fms服务器通讯文件(main.asc)编写)
1.Fms plugins 编写FMS服务器端脚本时,最头疼的莫过于AS1的语法了.习惯了AS2.3后,在没有代码提示的环境下,写代码确实是件很头疼的事,这个插件就可以发挥作用了. Flash Med ...
- flex builder 4
下载地址(需要登录):http://trials.adobe.com/AdobeProducts/FLBR/4/win32/FlashBuilder_4_LS10.exe 很全的在线帮助文档:http ...
随机推荐
- OSS项目进度(2.19)
前两周先后完成了OSS.Common ,OSS.Http ,OSS.Social 项目的.net standard支持,再次开始进入框架本身的开发,今天进度情况: 一.OSS.Social 完成摇一摇 ...
- JavaScript中的this关键字的用法和注意点
JavaScript中的this关键字的用法和注意点 一.this关键字的用法 this一般用于指向对象(绑定对象); 01.在普通函数调用中,其内部的this指向全局对象(window); func ...
- vue生命周期的介绍
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- JAVA设计模式:代理模式&& 装饰模式区别
在前面学习了代理模式和装饰模式后,发现对两者之间有时候会混淆,因此对两者进行了区别和理解: 装饰模式你可以这样理解,就像糖一样,卖的时候商家大多要在外面包一层糖纸,其实原本还是糖. public in ...
- PHP学习1 — PHP文件处理
PHP 中 include 与 require Php include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中. 这意味着您 ...
- 网站Web业务架构从小到大演变
有一天,我突发奇想创建了一个站点,基于 LNMP 架构,起初只有我自己访问,后来因为我点儿正,访问量越来越大,所以最终导致下面的架构演变. 1.单台机器 单台机器因为只是一个小站,访问量一天也没有多少 ...
- synchronized和lock比较浅析
synchronized是基于jvm底层实现的数据同步,lock是基于Java编写,主要通过硬件依赖CPU指令实现数据同步.下面一一介绍 一.synchronized的实现方案 1.synchroni ...
- HttpRequest获取文件流,HttpResponse输出文件流
HttpResponse输出文件: Response.Clear(); Response.ContentType = "application/octet-stream"; //通 ...
- 不要怂,就是GAN (生成式对抗网络) (六):Wasserstein GAN(WGAN) TensorFlow 代码
先来梳理一下我们之前所写的代码,原始的生成对抗网络,所要优化的目标函数为: 此目标函数可以分为两部分来看: ①固定生成器 G,优化判别器 D, 则上式可以写成如下形式: 可以转化为最小化形式: 我们编 ...
- java 使用Stack来判断Valid Parentheses
假如定义形如"{}[]()"或者"{[()]}"的模式为valid,"[{]"或者"(("的模式为invalid,那么我 ...