http://www.89525.net/player/PlayerCodeAs/2012/0828342.html
很多人可能到现在还搞不懂Actionscript(3.0/2.0) / .as / .mxml / .swf / .air
Flex / Air / Flash
Flash Player / Air Runtime
之间交错的关系, 就连身为 web designer / programmer的我也花了一些时间来搞懂,不过也不确定正不正确,在这边分享我自己版本的解释,也希望有错的话请大方解囊相授。
首先,先了解这三样(flash / flex / air)到底是 为何而战,为谁而战? …
写Code的原因是为了达成某种目的,就Actionscript而言,原本的目的只是制做出 .swf 文件,然后embed在html里面,显示声光互动的效果,这效果可以拿来作广告,做艺术,做简报,做 game,做互动卡通,做非线性故事,做笑料,等等。
后来因为应用越来越广,所以在几年前出现了Flex,专攻Rich Internet Application, 最近推出的AIR则是加上了desktop application的一些web application办不到的互动功能。
如果光看成品的格式,Flash/Flex都是.swf,想的简单一点,.swf不一定是要由flash做出来,Adobe illustrator,也可以做出没有互动的swf文件,也就是说做 swf文件的方式有很多种,就像能制造出 jpg 图像的软件也很多,只是功能强不强大跟速度快不快而已。
我个人浅见一切的根本还是在Flash, 用 Flash可以做出最多种东西,不只是 .swf,也可以包着图形作成可以重复应用的 component(.swc). 而Flex,就是把很多Flash做出来的可以光利用文字 customize, reuse 的 component 用很类似XML(xhtml)的 mxml 语法写出来,在另外加上典型的 Actionscript 让每个componet之间互动,或者是一些 .as 的物件,来达到RIA(Rich Internet Application)的功能,所以 Flash 跟 Flex 都是输出 .swf 然后,用 Flash Player 跑的,我认为两个差不多,只是 Flex 开发非常快速,因为很多 UI(User Interface) component 都做好了。
而 AIR 是综合 Flex / Flah,可以是 .mxml 或 .as, 可是由于可以特别在桌面上跑,所以加上他自己的一些class, 变成只有 Adobe® AIR™ runtime 可以跑的桌上应用程序
AS2/AS3/FLA -> FLASH( 讲求设计,具有 timeline / vector symbol library )
AS3+MXML+CSS -> FLEX (用 UI component, mxml做位置编排,CSS改变样式,非常适合快速程序开发 )
AS3 / MXML + AJAX + sqlite + Desktop Interaction -> AIR( 包含所有Flex/Flash,加上跟桌面整合的功能 )
制作 Flex / Flash / Air 分作三个过程: source code developing -> compile -> play it using player。
这三种不同的产品都有基于一些相同(actionscript)及不同(classes and component)的方式制作,用到的compiler跟editor也不太一样。
1. 怎么写? 基本上除非你要写在 .fla 里面贴在视觉物件上的 code (这不是很好的方法), 用一般的文字处理软件像是(Editplus, 记事本)就可以开始写 Actionscript。
由于 AS 是物件导向程序(OOP)为基本,在 Flash IDE 里面的AS Editor 并不是这么好对付这么以文字为基础的逻辑架构,所以可以利用一些别的Editor(专业名称 IDE:Integrated_development_environment)来管理众多的 Classes。
一般常见的有Adobe Flash CS3, Adobe Flex Builder (based on eclipse), Eclipse + FTD, SE|PY, FlashDevelop (PC), SciTE. 这些编辑器里面通常都要设定core library,先把Flash基本的物件类别设定好,之后可以opne linkage libraries 去管理及应用到处抓来的东西(像是tweener / papervision….etc.)
2. 写在哪? ActionScript 是一个 base on ECMAScript 语法的程序语言.目前开发到 3.0.(2.0与3.0语法上有很大的改变,做出来的swf在相容性也有问题)
AS 会存在的方式有三种,(1)一种是在 *.as 的文字档上,(2)另一种是在.fla (Flash CS3) 里面的 library 物件上或是timeline上,(3)还有就是在*.mxml文字档里面 <mx:Script><![CDATA[ .... ]]></mx:Script>
三种都有不同的写法,最正规的就是写在 .as 文件档里面,其他的会有一些很特殊的方式互相配合。
2.1. *.mxml : Flex / AIR
2.2. *.as/*.fla : Flash / AIR
3. 怎么编码? 要制作 .swf 或是 .air 的档桉你必须把写好的 .fla / .as / .mxml 档桉 compile 成 .swf / .air, 就是把人可以了解的 code (文字) 档转换成电脑 player / runtime 看得懂得 byte code( .swf / .air)
用 .as(flash) .mxml(flex) 写出来的东西要先被 compile 成 .swf / .air 然后可以被 Flash Player (stand alone / browser plugin) / Air (Adobe® AIR™ runtime) 拿来执行,所以光是 .as 档桉你看到的就只是一首比文言文还难懂的诗. 虽然都是输出成 .swf/.air,不过输出的 .swf/.air 以及所用到的 compiler 有很多种,用基本的用电脑常识大概也可以知道既然是要读文件后生出另一个文件。不同的软件一定会有分别,像是photoshop不能读 exe档一样, compiler也有complier的差别,有些只吃2.0,输出的 .swf 也可以选择让不同的版本的 player 跑。
这些compiler 比较常见的就是
3.1. Flash CS3 (actionscript 1.0/2.0/3.0,.fla -> .swf / actionscript3.0 ->.air)
在Flash IDE(CS3)里面的 compiler, 这个 compiler比其他两个特别一点,他出了 .as 文字档外, 还可以compile .fla 里面的物件, 必要的时候还会自动把 library 里面有 linkage 的物件,生出虚拟的 class 来使用.要用flash cs3 做air你要先有这个。
3.2. Flex (actionscript 3.0 -> .swf / .air)
3.2.1. 在Flex Builder 里面的 compiler,用这个compiler无法抓到 Flash library里面自动产生的 Class,导致无法compile,不过如果你够强,连画个圆都用 code的话(你有种就画个清明上河图看看),那就没差. Flex Compile出来的东西可以是 .swf / .air
3.2.2.如果你够强,不需要用 IDE ,光用文字编辑器写Code,因为你的超能力, 你可以不花钱而去用免费的 Flex SDK(Software Development Kit),去产生swf文件(例如: mxmlc.exe -library-path+=../lib/bin/assets.swc -coverage src/test.mxml -output bin/Output.swf )
3.3. AIR SDK(actionscript3.0 -> .air)同2.2,只要你够屌,你就不用花钱. Dreamweaver 也可以编辑+compile
3.4. 以上都是adobe推出的, mtasc 则是 Open Source free compiler,可惜他只能读2.0的Code。
4.怎么跑? .swf(flash / flex), 都是放在网路上,用 flash player 9 就可以跑, AIR则要先在电脑里面先安装 Adobe® AIR™ runtime (类似player的东西),然后抓下 .air 安装档,之后像应用程序一样安装。
5.哪个好? Flash / Flex / AIR 哪个好?
5.1. AIR
-> PRO: 包含了 Flash / Flex 所有可以办的到的功能加上对 Local 端互动的支援,所以功能可以说是最强大
-> CON: AIR 要先安装 Adobe® AIRTM runtime,之后还要下载 .air 档安装成应用程序,过程比较麻烦,会流失掉部分使用者
5.2. Flex
-> PRO: 有许多可以有限度更改介面以及很多针对对资料管理的 Component, 很快就可以像拼拼图一样拼出想要的 RIA, 利用 Flex Builder SDK 来制作,熟悉的 MXML 语法, 深受 hard core programmer 喜爱,因此也发展迅速,当然这些人认为flash没有flex厉害,因为太麻烦。
-> CON: 如果光应用基本的 Componet 看起来会很一致,缺乏设计感(能做到的已经相当广泛,当然是会比 html好,甚至比一些 Flash 好), 没有像 AIR 一样具有与桌面互动的能力
5.3. Flash -> PRO: Flash CS3 具有 Timeline, 还有 vector drawing 的 Tool, 可以做动画,Banner…等. 对于视觉创意人士而言是很好的工具 -> CON: Flash 无法像 Flex 一样可以快速开发 RIA, 也没有像 AIR 一样具有与桌面互动的能力。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。