Flex 学习笔记之一:Flex 简介
?????????????? Flex 是一個(gè)高效、免費(fèi)的開源框架,可用于構(gòu)建具有表現(xiàn)力的 Web 應(yīng)用程序,這些應(yīng)用程序利用 Adobe Flash Player和 Adobe AIR, 運(yùn)行時(shí)跨瀏覽器、桌面和操作系統(tǒng)實(shí)現(xiàn)一致的部署。
??????????????Flex通常是指Adobe Flex,是最初由Macromedia公司在2004年3月發(fā)布的,基于其專有的Macromedia Flash平臺(tái),它是涵蓋了支持RIA(Rich Internet Applications)的開發(fā)和部署的一系列技術(shù)組合。flex的另一個(gè)意思是一款生成掃描器的工具,能夠識(shí)別文本中的詞法模式。
?
????????????? flex簡(jiǎn)介
Flex 是一個(gè)高效、免費(fèi)的開源框架,可用于構(gòu)建具有表現(xiàn)力的 Web 應(yīng)用程序,這些應(yīng)用程序利用 Adobe Flash Player和 Adobe AIR, 運(yùn)行時(shí)跨瀏覽器、桌面和操作系統(tǒng)實(shí)現(xiàn)一致的部署。雖然只能使用 Flex 框架構(gòu)建 Flex 應(yīng)用程序,但Adobe Flash Builder?(之前稱為 Adobe Flex Builder?)軟件可以通過智能編碼、交互式遍歷調(diào)試以及可視設(shè)計(jì)用戶界面布局等功能加快開發(fā)。
使用 Flex 創(chuàng)建的 RIA 可運(yùn)行于使用 Adobe Flash Player 軟件的瀏覽器中,或在瀏覽器外運(yùn)行于跨操作系統(tǒng)運(yùn)行時(shí) Adobe AIR上,它們可以跨所有主要瀏覽器、在桌面上實(shí)現(xiàn)一致的運(yùn)行。連接到 Internet 的計(jì)算機(jī)中超過 98% 裝有 Flash Player,這是一個(gè)企業(yè)級(jí)客戶端運(yùn)行時(shí),它的高級(jí)矢量圖形能處理要求最高、數(shù)據(jù)密集型應(yīng)用程序,同時(shí)達(dá)到桌面應(yīng)用程序的執(zhí)行速度。通過利用 AIR,Flex 應(yīng)用程序可以訪問本地?cái)?shù)據(jù)和系統(tǒng)資源。
Macromedia Flash是強(qiáng)大的矢量動(dòng)畫編輯工具,在做動(dòng)畫起家之后,Flash一直在謀求RIA(rich internet application)富客戶端的霸主地位,最有影響的是,已經(jīng)推出了面向?qū)ο蟮木幊棠_本ActionScript3.0,并且建立起類似于java swing的類庫和相應(yīng)component(組件)。Flex是通過java或者.net等非Flash途徑,解釋.mxml文件組織components,并生成相應(yīng)的.swf文件。Flex的component和flash的component很相似,但是有所改進(jìn)增強(qiáng)。目前Macromedia公司已經(jīng)被ADOBE公司收購。當(dāng)前(2011年11月)的flex版本為4.6。
運(yùn)用Flash是完全可以做到flex的效果的,為什么還需要flex呢?這里面有兩個(gè)原因:
1:為了迎合更多的developers(開發(fā)者)。Flash天生是為了designer(設(shè)計(jì)者)設(shè)計(jì)的,界面還有flash的動(dòng)畫概念和程序開發(fā)人員格格不入,為了吸引更多的jsp/asp/php等程序員,Macromedia推出了Flex,用非常簡(jiǎn)單的.mxml來描述界面給jsp/asp/php程序人員使用.(x/d)html非常相似,而且mxml更加規(guī)范化、標(biāo)準(zhǔn)化。
2:為了一個(gè)標(biāo)準(zhǔn)。大家一定聽說過微軟操作系統(tǒng)vista(后續(xù)的win7也是同一核心),在vista推出的同時(shí)微軟也推出了新的語言xaml,一種界面描述語言,與之相應(yīng)的就是smart client和flex非常相似的東西(即SilverLight)。Mxml和Xaml的也很相似… …這是人機(jī)交互技術(shù)的進(jìn)步的重要體現(xiàn),即內(nèi)部邏輯與外部界面交互相分離。
Flex和j2ee/.net其實(shí)沒什么關(guān)系,Macromedia用java做出來個(gè)應(yīng)用把flash的技術(shù)融合到J2EE里面,再用.net的技術(shù)做出來個(gè).net應(yīng)用把flash技術(shù)融合到.net里面去;應(yīng)該說flex解決了J2EE里面和.net里面最繁瑣的問題那就是web 客戶端的問題。
?
Flex應(yīng)用前景
優(yōu)勢(shì)
作為新一代的富客戶端互聯(lián)網(wǎng)技術(shù)的佼佼者,Flex這種技術(shù)已經(jīng)被越來越多的公司所采用,被越來越多的用戶和程序員所接受。以下列出Flex十大優(yōu)勢(shì):
1、Flex與Flash:可以讓普通程序員開發(fā)制作Flash成為可能
2、界面表現(xiàn)能力一流。
3、RIA富客戶端應(yīng)用,解決了異步調(diào)用,界面無刷新,瀏覽器兼容性等多項(xiàng)難題
4、對(duì)流媒體的支持:Flex是被公認(rèn)為流媒體技術(shù)支持最好的應(yīng)用
5、平臺(tái)的可用性:根據(jù)ADOBE公司的說法,Flash player在全世界一半的PC機(jī)器上安裝度為99.8%
6、跨平臺(tái):Flash player能夠在linux下運(yùn)行,也可以在手機(jī)上運(yùn)行,所以不用擔(dān)心綁死在WINDOWS上
7、對(duì)底層的可操作性:Flex能夠調(diào)用底層的東西,比如可以調(diào)用攝像頭實(shí)現(xiàn)視頻,而且視頻本身就嵌入在Flex應(yīng)用中,由Flex player直接播放。
8、平臺(tái)的后續(xù)運(yùn)營和發(fā)展前景:Flex是由ADOBE公司推出的且開源
9、有充足的學(xué)習(xí)環(huán)境: Flex官方樣式配置工具,可以在線配置Flex應(yīng)用程序各種控件的外觀樣式,改程序也是用Flex編寫的,大家可以想象Flex可以做到什么程度的應(yīng)用了,而且這么漂亮的界面,根本不用做任何圖片和美工,都是直接用樣式實(shí)現(xiàn)即可。
10可以用任何你熟悉的WEB編程平臺(tái)作為后臺(tái)數(shù)據(jù)訪問層,可以使用 .net,php,jsp,webservice 。
Adobe RIA技術(shù)
傳統(tǒng)網(wǎng)絡(luò)程序的開發(fā)是基于頁面的、服務(wù)器端數(shù)據(jù)傳遞的模式,把網(wǎng)絡(luò)程序的表現(xiàn)層建立于HTML頁面之上,而HTML是適合于文本的,傳統(tǒng)的基于頁面的系統(tǒng)已經(jīng)漸漸不能滿足網(wǎng)絡(luò)瀏覽者的更高的、全方位的體驗(yàn)要求了。而富互聯(lián)網(wǎng)應(yīng)用(Rich Internet Applications,縮寫為RIA)的出現(xiàn)就是為了解決這個(gè)問題。
RIA面向用戶
富互聯(lián)網(wǎng)應(yīng)用程序是下一代的將桌面應(yīng)用程序的交互式用戶體驗(yàn)與傳統(tǒng)的WEB應(yīng)用的部署靈活性和成本分析結(jié)合起來的網(wǎng)絡(luò)應(yīng)用程序。富互聯(lián)網(wǎng)應(yīng)用程序中的富客戶技術(shù)通過提供可承載已編譯客戶端應(yīng)用程序(以文件形式,用HTTP傳遞)的運(yùn)行環(huán)境,客戶端應(yīng)用程序使用異步客戶/服務(wù)器架構(gòu)連接現(xiàn)有的后端應(yīng)用服務(wù)器,這是一種安全、可升級(jí)、具有良好適應(yīng)性的新的面向服務(wù)模型,這種模型由采用的WEB服務(wù)所驅(qū)動(dòng)。結(jié)合了聲音、視頻和實(shí)時(shí)對(duì)話的綜合通信技術(shù),使富互聯(lián)網(wǎng)應(yīng)用程序(RIA)具有前所未有的網(wǎng)上用戶體驗(yàn)。
Adobe RIA技術(shù)封裝讓現(xiàn)有的WEB技術(shù)得到了極大的保留,核心價(jià)值在于大大提高了產(chǎn)品設(shè)計(jì)師和開發(fā)工程師的“開發(fā)體驗(yàn)”,強(qiáng)化了設(shè)計(jì)端和開發(fā)端的整合。設(shè)計(jì)師和開發(fā)工程師們可以方便地將自己的代碼平移到新的平臺(tái)上,并且發(fā)布、部署的方式比之前的任何一款開發(fā)工具都方便得多,從而使RIA應(yīng)用有更廣大的開發(fā)者基礎(chǔ)。
Adobe RIA技術(shù)也將帶來新的桌面革命——“Desktop 2.0”,內(nèi)容從Flash, HTML/CSS/JS,到PDF,幾乎涵蓋了時(shí)下最流行的WEB內(nèi)容載體。此外,“可離線”應(yīng)用模式能讓用戶更加安全、舒適地進(jìn)行工作和娛樂。用戶們不必再抱怨因網(wǎng)絡(luò)故障而造成的信息損失,而且也可以借助本地資源更好地節(jié)省網(wǎng)絡(luò)資源。因此,Adobe RIA技術(shù)可以讓用戶將WEB 2.0應(yīng)用帶回桌面,創(chuàng)造的商業(yè)應(yīng)用價(jià)值和用戶體驗(yàn)價(jià)值將超過以往任何技術(shù)。
定位
2011年11月,adobe宣布對(duì)移動(dòng)瀏覽器上的flash player不再支持新版本升級(jí)。并建議開發(fā)者使用html5 代替開發(fā)移動(dòng)程序。
到11年12月,adobe解說已經(jīng)讓部分內(nèi)部開發(fā)者轉(zhuǎn)到html5的研究上, 但承諾繼續(xù)支持flash技術(shù)。從長(zhǎng)遠(yuǎn)來看adobe在現(xiàn)在放棄部分領(lǐng)域 在將來可能也會(huì)逐步放棄其他flex/flash的傳統(tǒng)領(lǐng)域。
經(jīng)典應(yīng)用
1、eBay
eBay桌面是構(gòu)建于Adobe AIR上的一個(gè)應(yīng)用程序,程序創(chuàng)建了與eBay客戶的持久連接。eBay桌面實(shí)時(shí)地直接將產(chǎn)品供貨通知和拍賣更新發(fā)布給買主,這樣用戶不需要打開瀏覽器進(jìn)入eBay網(wǎng)站就可以獲取最新信息。
2、納斯達(dá)克股票市場(chǎng)公司
NASDAQ Market Replay使用Adobe Flex和Adobe AIR在桌面上發(fā)布一個(gè)RIA,讓金融專業(yè)人士能夠重放任何時(shí)間點(diǎn)市場(chǎng)活動(dòng)的詳情。
3、紐約時(shí)報(bào)公司
紐約時(shí)報(bào)公司正在開始ShifD,一個(gè)新的RIA,允許使用者在計(jì)算機(jī)和移動(dòng)設(shè)備之間切換內(nèi)容。ShifD工作在Web網(wǎng)站和移動(dòng)設(shè)備之上以及兩者之間,通過一個(gè)可下載的AIR應(yīng)用程序提供給人們一種欣賞移動(dòng)媒體的方式。
4、CCTV網(wǎng)絡(luò)電視奧運(yùn)臺(tái)
由 Adobe Flex 制作、Adobe Flash 技術(shù)加以傳遞前所未有的網(wǎng)頁體驗(yàn)。其中包含由 CCTV 奧運(yùn)媒體團(tuán)隊(duì)所提供的奧運(yùn)賽事成績(jī)、統(tǒng)計(jì)資料,以及多樣化的背景數(shù)據(jù)、比賽規(guī)則及專家分析等。同時(shí),透過社交網(wǎng)絡(luò)功能,還能讓運(yùn)動(dòng)迷與朋友們實(shí)時(shí)分享各種奧運(yùn)賽事意見及看法。
Flex與Flash的關(guān)系
首先這里想說的是,Flash并非只是一個(gè)單純的矢量動(dòng)畫創(chuàng)作工具,而是一個(gè)憑借腳本語言ActionScript在功能和定位上不斷演變的網(wǎng)絡(luò)應(yīng)用開發(fā)工具。早在Flash MX的時(shí)候就已經(jīng)成為macromedia 推廣RIA戰(zhàn)略的工具。但是畢竟Flash最初的定位是面向美術(shù)動(dòng)畫設(shè)計(jì)師的矢量動(dòng)畫創(chuàng)作工具,并不適合傳統(tǒng)的開發(fā)人員。于是Flex成為開發(fā)者們的首選。
與FLASH
Flex和Flash都以ActionScript作為其核心編程語言,并被編譯成swf文件運(yùn)行于Flashplayer虛擬機(jī)里。因此Flex也繼承了Flash在表示層上先天性的美感、除了視覺上的舒適感外,還天生具備方便的矢量圖形、動(dòng)畫和媒體處理接口。
雖然Flex和Flash有眾多的相似點(diǎn),但是不同之處仍然很多:
1.盡管公用ActionScript,但是使用的庫并不完全相同,更合適的說法是兩者使用著兩套具有極大“功能重疊”范圍的庫。
2.Flash偏向的是美術(shù)動(dòng)畫設(shè)計(jì)師人員,所以更容易發(fā)揮特效處理的優(yōu)勢(shì),Flex偏向開發(fā)人員,所以容易做出具有豐富交互功能的應(yīng)用程序。
3.Flash只能以ActionScript腳本的形式開發(fā)(舞臺(tái)被關(guān)聯(lián)到一個(gè)稱之為 document class的類里),另外舞臺(tái)元素也是可以綁定腳本的,不過從軟件工程的角度講不建議這樣用,Flex還可以使用稱作mxml的標(biāo)記語言來描述應(yīng)用的外觀和行為,mxml中可以直接嵌入ActionScript腳本。
4.由于第三點(diǎn)而造成的兩者市場(chǎng)定位不同,Flex是面向企業(yè)級(jí)的網(wǎng)絡(luò)應(yīng)用程序,Flash則面向諸如平面動(dòng)畫、廣告設(shè)計(jì)等多媒體展示程序。
5.借助Flash Lite這一移動(dòng)設(shè)備上的Flashplayer,Flash可以開發(fā)移動(dòng)應(yīng)用,Flex則不行。
6.Flash的編程模型是基于時(shí)間軸的,Flex的則是基于窗體,雖然它運(yùn)行在網(wǎng)頁里。
Flex的技術(shù)組成技術(shù)框架
Flex技術(shù)包括以下幾個(gè)主要技術(shù)框架:
1. 描述應(yīng)用程序界面的XML語言(MXML);
2. 符合ECMA規(guī)范的腳本語言(ActionScript),處理用戶和系統(tǒng)的事件,構(gòu)建復(fù)雜的數(shù)據(jù)模型;
3. 一個(gè)基礎(chǔ)類庫;
4. 運(yùn)行時(shí)的即時(shí)服務(wù);
5. 由MXML與ActionScript文件生成swf文件的編譯器。
開發(fā)步驟
以下直接來源于Flex 2.0 Beta 3的幫助文件:
使用一系統(tǒng)預(yù)定義組件(窗口,按鈕等)來定義一個(gè)開發(fā)界面。
組織安排組件,現(xiàn)在用戶自定義的界面設(shè)計(jì)。
使用風(fēng)格和主題來定義可見設(shè)計(jì)。
增加動(dòng)態(tài)動(dòng)作,如應(yīng)用程序之間的互動(dòng)。
定義并在需要時(shí)連接上一個(gè)數(shù)據(jù)服務(wù)。
從源代碼生成一個(gè)在Flash播放器中運(yùn)行的SWF文件。
?
總結(jié)
以上是生活随笔為你收集整理的Flex 学习笔记之一:Flex 简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网易称暴雪离婚不离身;苹果发布 M2 P
- 下一篇: STM32标准库工程中移植Tencent