結構介紹
Flex 是一個高效、免費的開源框架,可用於構建具有表現力的 Web應用程式,這些應用程式利用Adobe Flash Player和Adobe AIR, 可以實現跨瀏覽器、桌面和作業系統。雖然只能使用 Flex 框架構建 Flex應用程式,但Adobe Flash Builder™(之前稱為 Adobe Flex Builder™)軟體可以通過智慧型編碼、互動式遍歷調試以及可視設計用戶界面布局等功能加快開發。
使用 Flex 創建的 RIA 可運行於裝有 Adobe Flash Player 外掛程式的瀏覽器中,或運行於跨作業系統的 Adobe AIR上,它們可以跨所有主流瀏覽器、作業系統實現一致的運行。通過利用 AdobeAIR,Flex應用程式可以訪問本地數據和系統資源。Flex技術的三大組成部分:UI、數據、伺服器技術介紹。從根本上說,Flex技術是表現層解決方案,像所有其他類似技術一樣,表現層技術要解決三個基本問題:表現層界面展示和人機互動,客戶端數據操作及伺服器端數據互動和整合。Flex針對這三個根本問題提供了卓越的解決方案。
Flex是通過java或者.net等非Flash途徑,解釋.mxml檔案,並生成相應的.swf檔案。Flex的component和flash的component很相似,但是有所改進增強。Macromedia公司已經被ADOBE公司收購。Adobe2013年01月15日將Flex捐給Apache並發布了Apache Flex4.8。
運用Flash是完全可以做到flex的效果的,為什麼還需要flex呢?主要有兩個原因:
1:為了迎合更多的developers(開發者)。Flash天生是為了designer(設計者)設計的,界面還有flash的動畫概念和程式開發人員格格不入,為了吸引更多的jsp/asp/php等程式設計師,Macromedia推出了Flex,提供了非常簡單的mxml界面描述語言給jsp/asp/php程式人員使用,而且mxml更加規範化、標準化。
2:為了一個標準。大家一定聽說過微軟的作業系統vista(後續的win7也是同一核心),在vista推出的同時微軟也推出了新的語言xaml,一種界面描述語言,與之相應的就是smart client和flex非常相似的東西(即SilverLight),Mxml和Xaml的也很相似…
Flex和J2EE /.NET其實沒什麼關係,Macromedia用java做出來個套用把flash的技術融合到J2EE裡面,再用.net的技術做出來個.net套用把flash技術融合到.net裡面去;應該說flex解決了J2EE裡面和.net裡面最繁瑣的問題那就是web 客戶端的問題。
成長歷史
成因
傳統的程式設計師在開發動畫套用方面存在困難,Flex 平台最初就是因此而產生。Flex 試圖通過提供一個程式設計師們已經熟知的工作流和編程模型來改善這個問題。
Flex 最初是作為一個J2EE(Java 2 Platform, Enterprise Edition)套用,或者可以說是JSP(JavaServer Pages)標籤庫而發布的。它可以把運行中的MXML(Flex標記語言)和ActionScript編譯成FLASH應用程式(即二進制的SWF檔案)。最新版的FLEX支持創建靜態檔案,該檔案使用解釋編譯方式並且不需要購買伺服器許可證就可以線上部署。
Flex的目標是讓程式設計師更快更簡單地開發RIA套用。在多層式開發模型中,Flex套用屬於表現層。
Flex 採用GUI界面開發,使用基於XML的MXML語言。Flex 具有多種組件,可實現Web Services,遠程對象,drag and drop,列排序,圖表等功能;FLEX內建動畫效果和其它簡單互動界面等。相對於基於HTML的套用(如PHP、ASP、JSP、ColdFusion及CFMX等)在每個請求時都需要執行伺服器端的模板,由於客戶端只需要載入一次,FLEX應用程式的工作流被大大改善。FLEX的語言和檔案結構也試圖把應用程式的邏輯從設計中分離出來。
Flex 伺服器也是客戶端和XML Web Services及遠程對象(Coldfusion CFCs,或Java類,等支持Action Message Format的其他對象)之間通訊的通路。
一般被認為是 Flex 替代品的是OpenLaszlo和AJAX技術。
版本歷史
Flex 1.0-2004年3月
Flex 1.5-2004年10月
Flex 2.0 (Alpha)-2005年10月
Flex 2.0 Beta 1-2006年2月
Flex 2.0 Beta 2-2006年3月
Flex 2.0 Beta 3-2006年5月
Flex 2.0 Final-2006年6月28日
Flex 2.0.1 - 2007年1月5日
Flex 3.0 Beta 1 - 2007年1月11日
Flex 3.0 Beta 2 - 2007年10月1日
Flex 3.0 Beta 3 - 2007年12月12日
Flex 3.0 - 2008年2月25日
Flex 3.1 - 2008年8月15日
Flex 3.2 - 2008年11月17日
Flex 3.3 - 2009年3月4日
Flex 3.4 - 2009年8月18日
Flex 3.5 - 2009年12月16日
Flex4的最終正式版 - 2010年3月22日
套用前景
優勢
作為新一代的富客戶端網際網路技術的佼佼者,Flex這種技術已經被越來越多的公司所採用,被越來越多的用戶和程式設計師所接受。以下列出Flex十大優勢:
1、Flex與Flash:可以讓普通程式設計師開發製作Flash成為可能
2、界面表現能力一流。
3、RIA富客戶端套用,解決了異步調用,界面無刷新,瀏覽器兼容性等多項難題
4、對流媒體的支持:Flex是被公認為流媒體技術支持最好的套用
5、平台的可用性:根據ADOBE公司的說法,Flash player在全世界一半的PC機器上安裝度為99.8%
6、跨平台:Flash player能夠在linux下運行,也可以在手機上運行,所以不用擔心綁死在WINDOWS上
7、對底層的可操作性:Flex能夠調用底層的東西,比如可以調用攝像頭實現視頻,而且視頻本身就嵌入在Flex套用中,由Flex player直接播放。
8、平台的後續運營和發展前景:Flex是由ADOBE公司推出的且開源
9、有充足的學習環境: Flex官方樣式配置工具,可以線上配置Flex應用程式各種控制項的外觀樣式,該程式也是用Flex編寫的,大家可以想像Flex可以做到什麼程度的套用了,而且這么漂亮的界面,根本不用做任何圖片和美工,都是直接用樣式實現即可。
10、可以用任何你熟悉的WEB編程平台作為後台數據訪問層,可以使用 .net,php,jsp,webservice 。
11、面向對象的as3程式語言,有著和java非常類似的語言風格,非常適合學java程式設計師快速入門。
Adobe RIA
傳統網路程式的開發是基於頁面的、伺服器端數據傳遞的模式,把網路程式的表現層建立於HTML頁面之上,而HTML是適合於文本的,傳統的基於頁面的系統已經漸漸不能滿足網路瀏覽者的更高的、全方位的體驗要求了。而富網際網路套用(Rich Internet Applications,縮寫為RIA)的出現就是為了解決這個問題。
富網際網路應用程式是下一代的將桌面應用程式的互動式用戶體驗與傳統的WEB套用的部署靈活性和成本分析結合起來的網路應用程式。富網際網路應用程式中的富客戶技術通過提供可承載已編譯客戶端應用程式(以檔案形式,用HTTP傳遞)的運行環境,客戶端應用程式使用異步客戶/伺服器架構連線現有的後端套用伺服器,這是一種安全、可升級、具有良好適應性的新的面向服務模型,這種模型由採用的WEB服務所驅動。結合了聲音、視頻和實時對話的綜合通信技術,使富網際網路應用程式(RIA)具有前所未有的網上用戶體驗。
Adobe RIA技術封裝讓現有的WEB技術得到了極大的保留,核心價值在於大大提高了產品設計師和開發工程師的“開發體驗”,強化了設計端和開發端的整合。設計師和開發工程師們可以方便地將自己的代碼平移到新的平台上,並且發布、部署的方式比之前的任何一款開發工具都方便得多,從而使RIA套用有更廣大的開發者基礎。
Adobe RIA技術也將帶來新的桌面革命——“Desktop 2.0”,內容從Flash, HTML/CSS/JS,到PDF,幾乎涵蓋了時下最流行的WEB內容載體。此外,“可離線”套用模式能讓用戶更加安全、舒適地進行工作和娛樂。用戶們不必再抱怨因網路故障而造成的信息損失,而且也可以藉助本地資源更好地節省網路資源。因此,Adobe RIA技術可以讓用戶將WEB 2.0套用帶回桌面,創造的商業套用價值和用戶體驗價值將超過以往任何技術。
定位
2011年11月,adobe宣布對移動瀏覽器上的flashplayer不再支持新版本升級。並建議開發者使用html5 代替開發移動程式。
到11年12月,adobe解說已經讓部分內部開發者轉到html5的研究上, 但承諾繼續支持flash技術。從長遠來看adobe在放棄部分領域 在將來可能也會逐步放棄其他flex/flash的傳統領域。不過flex極有可能被HTML5分站大量市場。
Flex和Flash的主要區別:
1、Flex側重於套用軟體、遊戲的開發,flash更側重於網頁web端的展示效果。
2、Flex生成的swf檔案較大,不利於網路傳輸,flash生成的swf檔案較小,適合在網站上展示。
經典套用
1 、 eBay
eBay桌面是構建於Adobe AIR上的一個應用程式,程式創建了與eBay客戶的持久連線。eBay桌面實時地直接將產品供貨通知和拍賣更新發布給買主,這樣用戶不需要打開瀏覽器進入eBay網站就可以獲取最新信息。
2 、 納斯達克股票市場公司
NASDAQ Market Replay使用Adobe Flex和Adobe AIR在桌面上發布一個RIA,讓金融專業人士能夠重放任何時間點市場活動的詳情。
3 、 紐約時報公司
紐約時報公司正在開始ShifD,一個新的RIA,允許使用者在計算機和移動設備之間切換內容。ShifD工作在Web網站和移動設備之上以及兩者之間,通過一個可下載的AIR應用程式提供給人們一種欣賞移動媒體的方式。
4 、 CCTV網路電視奧運台
由 Adobe Flex 製作、Adobe Flash 技術加以傳遞前所未有的網頁體驗。其中包含由 CCTV 奧運媒體團隊所提供的奧運賽事成績、統計資料,以及多樣化的背景數據、比賽規則及專家分析等。同時,透過社交網路功能,還能讓運動迷與朋友們實時分享各種奧運賽事意見及看法。
與Flash
首先這裡想說的是,Flash並非只是一個單純的矢量動畫創作工具,而是一個憑藉腳本語言ActionScript在功能和定位上不斷演變的網路套用開發工具。早在Flash MX的時候就已經成為macromedia 推廣RIA戰略的工具。但是畢竟Flash最初的定位是面向美術動畫設計師的矢量動畫創作工具,並不適合傳統的開發人員。於是Flex成為開發者們的首選。
Flex和Flash都以ActionScript作為其核心程式語言,並被編譯成swf檔案運行於Flashplayer虛擬機里。因此Flex也繼承了Flash在表示層上先天性的美感、除了視覺上的舒適感外,還天生具備方便的矢量圖形、動畫和媒體處理接口。
雖然Flex和Flash有眾多的相似點,但是不同之處仍然很多:
1.儘管公用ActionScript,但是使用的庫並不完全相同,更合適的說法是兩者使用著兩套具有極大“功能重疊”範圍的庫。
2.Flash偏向的是美術動畫設計師人員,所以更容易發揮特效處理的優勢,Flex偏向開發人員,所以容易做出具有豐富互動功能的應用程式。
3.Flash只能以ActionScript腳本的形式開發(舞台被關聯到一個稱之為 document class的類里),另外舞台元素也是可以綁定腳本的,不過從軟體工程的角度講不建議這樣用,Flex還可以使用稱作mxml的標記語言來描述套用的外觀和行為,mxml中可以直接嵌入ActionScript腳本。
4.由於第三點而造成的兩者市場定位不同,Flex是面向企業級的網路應用程式,Flash則面向諸如平面動畫、廣告設計等多媒體展示程式。
5.藉助Flash Lite這一移動設備上的Flashplayer,Flash可以開發移動套用,Flex則不行。
6.Flash的編程模型是基於時間軸的,Flex的則是基於窗體,雖然它運行在網頁里。
技術組成
安裝及配置
SDK2:FLEX標準開發組件,包含flex框架;
Flex Charting 2:FLEX圖表組件
Flex Builder 2:開發FLEX套用的集成開發工具,基於Eclipse;
Flex Data Service 2:FLEX數據服務,應用程式使用數據服務與伺服器交換數據
技術框架
Flex技術包括以下幾個主要技術框架:
1. 描述應用程式界面的XML語言(MXML);
2. 符合ECMA規範的腳本語言(ActionScript),處理用戶和系統的事件,構建複雜的數據模型;
3. 一個基礎類庫;
4. 運行時的即時服務;
5. 由MXML與ActionScript檔案生成swf檔案的編譯器。
開發步驟
以下直接來源於Flex 2.0 Beta 3的幫助檔案:
使用一系統預定義組件(視窗,按鈕等)來定義一個開發界面。
組織安排組件,用戶自定義的界面設計。
使用風格和主題來定義可見設計。
增加動態動作,如應用程式之間的互動。
定義並在需要時連線上一個數據服務。
從原始碼生成一個在Flash播放器中運行的SWF檔案。
相關認證
名稱 | 範圍 | 簡介 |
Adobe RIA開發工程師 | 國內 | 開發工程師認證是Adobe針對國內計算機軟體和數字藝術、數字媒體等相關專業的在校大學生、研究生以及從業人員,為培養RIA開發人才而全力打造的專業教育解決方案。 了解Adobe RIA的概況和Adobe Flash平台的整體技術框架,並能通過Adobe Flash平台的主要開發工具實現基本的RIA項目開發。經Adobe專業考試平台針對考生技術掌握程度與實踐情況的專業考核,取得合格成績的考生將獲得由Adobe頒發的“Adobe RIA開發工程師”認證。 Adobe RIA技術概覽。Adobe Flex技術基礎。Adobe Flash Builder 4.0的使用。Adobe AIR基礎。 參考教材: 《Flex 4:開發富媒體套用》 |
Adobe Flex ACE | 國際 | The Flex 4 ACE Examis based upon the most critical job activities that a Flex developer performs. The skills and knowledge certified by this examination represent a professional level of expertise for a certified individual. |
Adobe Rich Internet Application ACE | Adobe Certified Expert - Rich Internet Application - 至少要有三個ACE通過才可以 Specialist ( v.1)Complete All. Electives Complete 1. Adobe Certified Expert - Advanced ColdFusion 8 Adobe Certified Expert - ColdFusion 8 Adobe Certified Expert - Dreamweaver CS4 Adobe Certified Expert - Illustrator CS4 Adobe Certified Expert - Photoshop CS4 Requirements Complete All. Adobe Certified Expert - Flash CS4 Adobe Certified Expert - Flex 3 with AIR |