`
兩ting
  • 浏览: 74815 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

AS3,MXML,Flex,Flex Builder,Flash Builder,Flash,AIR,Flash Player之关系

    博客分类:
  • flex
阅读更多

ActionScript

 

ActionScript通常简称为AS,它是Flash平台的语言。AS编写的程序,最终可以编译成SWF、SWC。SWF就是我们常说的Flash动画。但是现在SWF已经不仅仅是动画,而是RIA的载体。

ActionScript有3个版本,分别是1.0版(AS1),2.0版(AS2)和3.0版(AS3)。只有Flash Player 9及以上播放器才支持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、Flash Builder、AIR、Flash Player以及更多。但我们一般讲Flash,有两个意思,一个是指Flash动画(也就是网页上扩展名为swf的动画),另一个就是Flash IDE。

Flash(IDE)从4.0开始进入中国,前期一直在网页动画方面告诉发展,多被用来做网页小广告(让你CPU100%的罪魁祸首之一)和MV(showgood三国系列、小小系列、大学自习室……曾经风靡一时啊)。那时的“闪客”,主要是做动画,即使涉及到编程,也大多是用当时的AS1.0(后来Flash MX 2004升级为AS2.0)写一点stop、gotoAndPlay之类的东东了。Flash(IDE)发展到8.0版本以后,才开始大量用于编程,当时比较流行的就是“Flash留言本”等等。相关历史我做了一张图来表示,括号里的数字是年份。

 

Flash Builder/Flex Builder

 

AS发展到3.0之后,由于其语法和JAVA比较像,再加上增强的性能与强类型,可以完全脱离FLA文件,使用纯文本编码,受到了许多其他程序猿(尤其是JAVA程序员)的青睐。由此得以高速发展,用AS开发程序的人也越来越多。AS在视频网站、游戏行业发展迅速。但是,Flash IDE虽然是一个很好的动画制作工具,却不是一个好的开发工具。于是,Adobe又发布了Flex Builder,一个基于Eclipse的IDE,并发布了Flex SDK,后来又开源了。

有了免费的编译器,Flex得以快速发展。用Flex Builder也可以开发纯AS项目(即所有的文件都是as文件,不包含MXML,也不包含FLA)。一个真正的程序猿,应该更愿意使用这种方式吧?

Flex Builder从4.0开始,被Adobe改名为Flash Builder。Flash Builder和Flash IDE不应该放在一起比较,它们不是一类软件。如果一定要比较一下的话,那么就是Flash IDE比较偏重于设计一点,用它做动画比较方便,当然也可以用它编写AS3程序。用Flash IDE编写的程序,会有一个FLA源文件,可能还包含多个as文件。Flash Builder偏重于程序,用它可以开发MXML(也就是Flex)项目。也可以用它编写纯AS项目。用Flash Builder编写的项目,都是纯文本文件(.as或者.mxml)。 对于程序流,当然偏爱Flash Builder,而设计流比较偏爱Flash IDE。

当然,IDE并非只有Adobe官方的东西,Flash Develop就是个免费的IDE。如果你愿意,用记事本做编辑器也没什么不好(比如说zrong就正在尝试VIM),因为SDK和编译器都是免费的。

 

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+Flex+Air移动开发入门经典 pdf

    《flash+flex+air移动开发入门经典——适用于android、ios和blackberry》 第1章 flash、flex和air简介 1 1.1 adobe flash 1 1.2 actionscript 3.0 2 1.2.1 ecmascript 2 1.2.2 关键概念 3 1.3 flex框架 11 ...

    使用ADOBE FLASH BUILDER 4.5

    使用 Flash Builder 打包 AIR 应用程序 第 5 章: Flash Builder 中的调试工具 Flash 调试透视图 调试应用程序的方法 第 6 章: Flash Builder 中的概要分析工具 Flash 概要分析透视图 概要分析应用程序 概要分析器...

    as3 flex mxml调用.as文件例子

    NULL 博文链接:https://liujianshiwo.iteye.com/blog/624512

    Flash Builder 4 快速入门

    1.1 从Flex Builder到Flash Builder 第二章 Flash Builder 4 界面 2.1 主界面 2.2 主菜单 2.3 工具条 2.4 主要窗口 ·第三章 Flash Builder 4 新特性 3.1 Package explorer 3.2 悬停时的ASDOC提示 3.3 ...

    Flash+Flex+AIR移动开发入门经典——适用于Android、iOS和BlackBerry

    通过学习,你将充分了解为移动设备优化的Adobe Flex框架和MXML组件,并且学习如何利用Flash Player 10.3和AIR ActionScript 3.0 API。 本书介绍的内容适合于各种层次的开发人员。它将帮助你从一个基础水平开始创建...

    MXML语法关于flexview

    MXML语法.MXML flexview actionscript

    Adobe Flex Builder 3.0官方使用教程

    Contents: <br>Chapter 1: Learning Flex Builder Chapter 2: About Flex Builder Chapter 3: Flex Builder Workbench Basics Chapter 4: Working with Projects Chapter 5: Navigating and ...

    Flex(MXML+AS)实现的计算器

    实现了计算器的加减乘除开根号和幂操作。没有去实现AS和MXML分离。 想研究的同学下载吧。。将文件解压后导入到FB 3.0 中

    Flex代码格式化 Flash格式化代码 mxml格式化代码 as格式化代码

    Flex代码格式化 Flash格式化代码 mxml格式化代码 as格式化代码

    flex中的mxml语法

    pdf格式的flex的mxml语法,适合想学习flex的新手

    photoshow flex+flash+mxml

    flex+flash+mxml = 绚丽相册实现 简单精美欢迎下载

    FLEX从入门到精通.pdf

     5.3 FlexBuilder3中的新内容  5.3.1 新向导  5.3.2 设训,模式的增强  5.3.3 开发功能的增强  5.3.4 CS3套件的整合  5.4 本章小结 第Ⅱ部分 使用FIex3开发应用程序  第6章 使用FIexBuilder3  6.1 ...

    构建Adobe AIR应用程序

    在 Flash Builder 中创建第一个桌面 Flex AIR 应用程序 使用 Flash Professional 创建第一个桌面 AIR 应用程序 在 Flash Professional 中创建您的第一个 AIR for Android 应用程序 创建第一个用于 iOS 的 AIR ...

    Flex 与C++通过Socket通讯

    web flex应用通过socket与C++编写的服务端进行通讯的一个例子,包括服务端代码(VC编译),flex的mxml文件(flex3builder新建web flex工程后,用该mxml文件直接替换src里的mxml文件即可)

    Flex eclipse 插件解决Mxml打开问题

    如果你的flex插件出现mxml无法打开的问题,请下载此文件,同时参考:http://www.tekool.net/blog/2008/06/28/flex-builder-3-plugin-dont-work-with-eclipse-34/或者:...

    flex-MXML语法

    flex -MXML语法,介绍flex 的 mxml的基本语法构成,适合一般学习者使用

    ArcGIS_Flex开发包

    3. In Adobe Flash Builder, add the API Library to the project through Project -> Properties -> Flex Build Path -> Library Path -> Add SWC (and locate the "agslib-2.4-2011-07-25.swc") 4. In Adobe ...

    Flex air sqlite操作实例

    Flex air 本地程序实例 使用sqlite 学员信息简单查询 本程序分三层 由不同的as(ActionScript)来实现,具体: ConnDb.as 数据助手类,专门用来封装SQLITE的操作,其中也包括了:创建数据库,数据表的方法. Student_...

    flex入门教程,主要介绍了mxml和ActionScript的简单应用

    flex入门教程,主要介绍了mxml和ActionScript的简单应用,适合初学者,高手就没必要下载啦

Global site tag (gtag.js) - Google Analytics