[AS3]AS,Flex,AIR之间关系以及它们的进化与演变(2)
Flash Player
swf动画需要在网页上显示出来,就需要安装Flash Player。Flash Player的不同版本,其实与Flash IDE也有一定的对应关系(从上图也能看出来)。但到了AS3时代后,这个对应关系就不那么明显了。Flash Player 9是能支持AS3 的最低版本(其实前面还有一个Flash Player 8.5,只是没普及就升级到9了),后面的Flash Player 都能支持AS3了。关于Flash Player,我写过一篇有史以来关于Flash Player的最详细说明,看这个就很清楚了。
AIR
Flash Player 再强大,也是运行在浏览器中,受浏览器约束。为了摆脱浏览器,Adobe又出奇招,发布了AIR。AIR其实就是一个Runtime,你可以把它理解成JVM。有了AIR,就可以用AS3开发桌面软件,而且开发出的软件可跨平台运行(这和JAVA的一次编译,随处运行不是如出一辙么!)。目前国内的AIR应用主要集中在网站的客户端方面,例如新浪微博AIR客户端等。
SWF SWC SWZ
SWF
swf是我们见到的最多的Flash平台文件了。是的,它就是Flash平台的最终表现形式。前面说到了,无论是Flex、Flash还是纯AS3,最终编译出来的文件都是swf格式,浏览器中的Flash Player插件和独立的Flash Player,也只能“打开”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的共享是平台级别的(Moudle SWF的共享是浏览器级别),存在于操作系统缓存中(Module SWF的存在浏览器缓存),只要下载过一次SWZ,你的操作系统中所有用到这些SWZ中的地方(无论是IE、FF、Chrome还是AIR)都不用重新下载。
对于程序员,这里的关于SWC和SWZ的信息肯定是不够的,所以建议看一下smithfox的swf swc swz RSLs ant,本文的这个部分也是参照它写成的。
相关链接:
Flash视频播放器常用的onMetaData参数信息说明
[AS3]制作FLV播放器(AS3.0代码+加界面)
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例