解析Flex與Flash的區(qū)別和聯(lián)系
本文和大家重點討論一下Flex與Flash區(qū)別和聯(lián)系,從技術(shù)角度來看,F(xiàn)lex和Flash是融合在一起的。但是在應(yīng)用技術(shù)選型的時候,F(xiàn)lex和Flash二者的區(qū)別非常明顯。
Flex與Flash區(qū)別
AS:ActionScript一種運行在AVM(ActionScriptVirtualMachine)上腳本語言。
Flex:
1.FlexSDK,基于Flash平臺的軟件開發(fā)包,F(xiàn)lexSDK包含了Web應(yīng)用程序框架(framework)和桌面離線應(yīng)用程序框架(airframework);
2.FlexBuilder,利用FlexSDK開發(fā)軟件的IDE(IntegratedDevelopmentEnvironment集成開發(fā)環(huán)境)。
3.基于FlexSDK中的framework,使用FlexBuilder開發(fā)Web應(yīng)用程序。
AIR:AdobeIntegratedRuntime
1.基于Flash平臺的桌面離線應(yīng)用程序運行環(huán)境。
2.基于FlexSDK中的airframework,使用FlexBuilder開發(fā)桌面離線應(yīng)用程序。
FlexBuilder不僅僅可以開發(fā)Flex應(yīng)用程序,也可以開發(fā)AIR應(yīng)用程序。
AS3是用來開發(fā)這些應(yīng)用程序的語言,是基礎(chǔ)。從Flex和AIR的編譯過程也可以看到這一點(簡化版):
1.將MXML文件翻譯成AS3文件
2.將AS3編譯成abc
3.將abc及其他資源打包進(jìn)SWF文件
Flash:
一種創(chuàng)作工具,設(shè)計人員和開發(fā)人員可使用它來創(chuàng)建演示文稿、應(yīng)用程序和其它允許用戶交互的內(nèi)容。
可以說Flex和AIR可以做到的用Flash都可以做到。只不過FlexSDK和AIRruntime簡化了許多工作。對開發(fā)人員更加友好。
mf是macromediaflash
Flash有時間線的概念,而Flex的SDK則把時間線這個東東向開發(fā)人員隱藏了,因此采用Flex開發(fā)項目的時候就和你用DELPHI,VB,C#那樣,直接拖放控件,編寫代碼即可,而不是像MF那樣,把東西拖放的時間線上。
理論上講Flex能做到的Flash都能做到,F(xiàn)lash能做的Flex都能做。不過Flex的時間軸只有兩幀,systemManager,Preloader,DownloadProgressBar等等在第一幀,其他的都在第二幀。做網(wǎng)頁游戲因為更多的是數(shù)據(jù)的變化,所以我覺得Flex更適合些
不過Flash9的組件和架構(gòu)和Flex的不一樣,很多類庫也不一樣。很久沒用Flash了,不過沒記錯的話,F(xiàn)lex和Flash的組件都是從繼承Flash.display.sprite開始寫的。
Flash.*開頭的類庫,基本上Flex和Flash都是一樣的
而fl.*開頭的是Flash獨有而Flex沒有的類
而mx.*開頭的就是Flex獨有的類
因為需要開發(fā)一個稍微復(fù)雜一點的界面。在選擇到底是Flex還是Flash方面做了一些評估測試。
1.開發(fā)的方便性和可維護(hù)性
因為團(tuán)隊的絕大多數(shù)成員以前是C++的Coder,所以個人傾向于用Flex.Flash的源文件是fla的,管理起來總沒有這么方便。有點修改就要重新提交一個fla,不利于cvs的增量備份,查看那些地方有修改也挺麻煩的。
2.發(fā)布文件的大小
都使用release形式發(fā)布,并且使用RSL,類似C++中的dll。Flex的空項目大小為51KB,Flash基本就是幾k。這個差別還是挺大的,所以如果只是做個簡單的界面,還是用Flash會比較好。
【編輯推薦】
- Flex和Flash的區(qū)別
- 用ActionScript創(chuàng)建可視化的Flex組件
- 技術(shù)前沿 看Flex客戶端緩存技術(shù)如何使用
- 解析Flex全屏模式設(shè)置方法
- Flex內(nèi)存泄露解決方法和內(nèi)存釋放優(yōu)化原則