Flex和Flash關系揭秘
在學習Flex的過程中,你可能會遇到Flex和Flash關系問題,這里和大家分享一下,首先讓我們來看一下AdobeFlex簡介的概念, Flex通常是指AdobeFlex,是一款生成掃描器的工具,能夠識別文本中的詞法模式。
AdobeFlex簡介
Flex通常是指AdobeFlex,是最初由Macromedia公司在2004年3月發布的,基于其專有的MacromediaFlash平臺,它是涵蓋了支持RIA(RichInternetApplications)的開發和部署的一系列技術組合。Flex的另一個意思是是一款生成掃描器的工具,能夠識別文本中的詞法模式。
MacromediaFlash是強大的矢量動畫編輯工具,在做動畫起家之后,Flash一直在謀求RIA(richinternetapplication)富客戶端的霸主地位,最有影響的是,已經推出了面向對象的編程腳本ActionScript3.0,并且建立起類似于javaswing的類庫和相應component(組件)。Flex是通過java或者.net等非Flash途徑,解釋.mxml文件組織components,并生成相應的.swf文件。Flex的component和flash的component很相似,但是有所改進增強。目前Macromedia公司已經被ADOBE公司收購。當前(2008年10月)的Flex版本為3.0。(現在已經4.0了(2010年))
運用Flash是完全可以做到Flex的效果的,為什么還需要Flex呢?這里面有兩個原因:
1:為了迎合更多的developers(開發者)。Flash天生是為了designer(設計者)設計的,界面還有flash的動畫概念和程序開發人員格格不入,為了吸引更多的jsp/asp/php等程序員,Macromedia推出了Flex,用非常簡單的.mxml來描述界面給jsp/asp/php程序人員使用.(x/d)html非常相似,而且mxml更加規范化、標準化。
2:為了一個標準。大家一定聽說過微軟***一代操作系統longhorn(即vista,后續的win7也是同一核心),在longhorn推出的同時微軟也推出了新的語言xaml,一種界面描述語言,與之相應的就是smartclient和Flex非常相似的東西(即SilverLight)。Mxml和Xaml的也很相似……這是人機交互技術的進步的重要體現,即內部邏輯與外部界面交互相分離。
Flex和j2ee/.net其實沒什么關系,Macromedia用java做出來個應用把flash的技術融合到J2EE里面,再用.net的技術做出來個.net應用把flash技術融合到.net里面去;應該說Flex解決了J2EE里面和.net里面最繁瑣的問題那就是web客戶端的問題。
Flex與Flash的關系
首先這里想說的是,Flash并非只是一個單純的矢量動畫創作工具,而是一個憑借腳本語言ActionScript在功能和定位上不斷演變的網絡應用開發工具。早在FlashMX的時候就已經成為macroemdia推廣RIA戰略的工具。但是畢竟Flash最初的定位是面向美術動畫設計師的矢量動畫創作工具,并不適合傳統的開發人員。于是Flex成為開發者們的***。
與FLASHFlex和Flash都以ActionScript作為其核心編程語言,并被編譯成swf文件運行于Flashplayer虛擬機里。因此Flex也繼承了Flash在表示層上先天性的美感、除了視覺上的舒適感外,還天生具備方便的矢量圖形、動畫和媒體處理接口。
雖然Flex和Flash有眾多的相似點,但是不同之處仍然很多:
1.盡管公用ActionScript,但是使用的庫并不完全相同,更合適的說法是兩者使用著兩套具有極大“功能重疊”范圍的庫。
2.Flash偏向的是美術動畫設計師人員,所以更容易發揮特效處理的優勢,Flex偏向開發人員,所以容易做出具有豐富交互功能的應用程序。
3.Flash只能以ActionScript腳本的形式開發(舞臺被關聯到一個稱之為documentclass的類里),另外舞臺元素也是可以綁定腳本的,不過從軟件工程的角度講不建議這樣用,Flex還可以使用稱作mxml的標記語言來描述應用的外觀和行為,mxml中可以直接嵌入ActionScript腳本。
4.由于第三點而造成的兩者市場定位不同,Flex是面向企業級的網絡應用程序,Flash則面向諸如平面動畫、廣告設計等多媒體展示程序。
5.借助FlashLite這一移動設備上的Flashplayer,Flash可以開發移動應用,Flex則不行。
6.Flash的編程模型是基于時間軸的,Flex的則是基于窗體,雖然它運行在網頁里。
【編輯推薦】