flex Adobe公司推出的開放源碼框架

簡介

 

  Macromedia Flash是強大的矢量動畫編輯工具,在做動畫起家之後,Flash一直在謀求rich internet application(ria富客戶端)的霸主地位,最有影響的是,已經推出了面向對象的編程腳本ActionScript3.0,並且建立起類似於java swing的類庫和相應component(組件)。Flex是通過java或者.net等非Flash途徑,解釋.mxml文件組織components,並生成相應得.swf文件。Flex的component和flash的component很相似,但是有所改進增強。目前Macromedia公司已經被ADOBE公司收購。當前(2008年10月)的flex版本爲3.0 。

  運用Flash是完全可以做到flex的效果的,爲什麼還需要flex呢?這裏面有兩個原因:1:爲了迎合更多的developers(開發者)。Flash天生是爲了designer(設計者)設計的,界面還有flash的動畫概念和程序開發人員格格不入,爲了吸引更多的jsp/asp/php等程序員,Macromedia推出了Flex,用非常簡單的.mxml來描述界面給jsp/asp/php程序人員使用.(x/d)html非常相似,而且mxml更加規範化、標準化。

  2,爲了一個標準。大家一定聽說過微軟下一代系統longhorn,在longhorn推出的同時微軟也會推出新的語言xaml,一種界面描述語言,與之相應的就是smart client和flex非常相似的東西。Mxml和Xaml的也很相似… …這是人機交互技術的進步的重要體現,即內部邏輯與外部界面交互相分離。

  Flex和j2ee/.net其實沒什麼關係,Macromedia用java做出來個應用把flash的技術融合到J2EE裏面,再用.net的技術做出來個.net應用把flash技術融合到.net裏面去;應該說flex解決了J2EE裏面和.net裏面最繁瑣的問題那就是web 客戶端的問題。

  

什麼是用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應用帶回桌面,創造的商業應用價值和用戶體驗價值將超過以往任何技術。

  

採用Adobe Flex & AIR技術的經典應用

 

  eBay(http://desktop.ebay.com)

  eBay桌面是構建於Adobe AIR上的一個應用程序,程序創建了與eBay客戶的持久連接。eBay桌面實時地直接將產品供貨通知和拍賣更新發布給買主,這樣用戶不需要打開瀏覽器進入eBay網站就可以獲取最新信息。

  納斯達克股票市場公司(https://data.nasdaq.com/mr.aspx)

  NASDAQ Market Replay使用Adobe Flex和Adobe AIR在桌面上發佈一個RIA,讓金融專業人士能夠重放任何時間點市場活動的詳情。

  紐約時報公司(http://shifd.com)

  紐約時報公司正在開始ShifD,一個新的RIA,允許使用者在計算機和移動設備之間切換內容。ShifD工作在Web網站和移動設備之上以及兩者之間,通過一個可下載的AIR應用程序提供給人們一種欣賞移動媒體的方式。

  CCTV網絡電視奧運臺(Olympic Network TV Station)

  由 Adobe Flex 製作、Adobe Flash 技術加以傳遞前所未有的網頁體驗。其中包含由 CCTV 奧運媒體團隊所提供的奧運賽事成績、統計資料,以及多樣化的背景數據、比賽規則及專家分析等。同時,透過社交網絡功能,還能讓運動迷與朋友們實時分享各種奧運賽事意見及看法。

  

Flex與Flash的關係

 

   首先這裏想說的是,Flash並非只是一個單純的矢量動畫創作工具,而是一個憑藉腳本語言ActionScript在功能和定位上不斷演變的網絡應用開發工具。早在Flash MX的時候就已經成爲macroemdia 推廣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的則是基於窗體,雖然它運行在網頁裏。

詞法分析器生成器

  flex (fast lexical analyser generator) 是 Lex 的另一個替代品。它經常和自由軟件 Bison語法分析器生成器 一起使用。Flex 最初由 Vern Paxson 於 1987 年用 C語言 寫成。

  Flex 手冊裏對 Flex 描述如下:

  “flex是一個生成掃描器的工具,能夠識別文本中的詞法模式。flex讀入給定的輸入文件,如果沒有給定文件名的話,則從標準輸入讀取,從而獲得一個關於需要生成的掃描器的描述。此描述叫做 規則,由正則表達式和 C代碼對組成。flex 的輸出是一個 C 代碼文件——lex.yy.c——其中定義了 yylex() 函數。編譯輸出文件並且和 -lfl庫鏈接生成一個可執行文件。當運行可執行文件的時候,它分析輸入文件,爲每一個正則表達式尋找匹配。當發現一個匹配時,它執行與此正則表達式相關的 C代碼。”

  一個相似的,用 C++語言 的詞法分析器生成器是 flex++,包含在 flex 軟件包裏。

  Flex 不是 GNU 工程,但是 GNU 爲 Flex 寫了手冊。

 

擴展閱讀:
1.官方網頁 http://flex.sourceforge.net/
2.Adobe - Flex Developer Center http://www.adobe.com/devnet/flex/?sdid=ZFCT
3.Adobe中文網站 http://www.adobe.com/cn/
4.Flex例子 http://examples.adobe.com/flex2/inproduct/sdk/explorer/explorer.html
5.flex視頻教程 http://www.hellocto.com/bbs/index.asp?boardid=91
6.[中文FlexExample] http://blog.minidx.com
7.[上海RIA俱樂部] http://riashanghai.com
8.漢化FLEX尤其是FLEX/AIR方面的中文資料 http://www.AIRia.cn
9.一個原創的關於Flex的博客 http://liguoliang.com/
10.Adobe公司Flex主頁:http://www.adobe.com/cn/products/flex/
11.ACAA教育(Adobe官方高級Flex & AIR富互聯網應用開發培訓):http://www.acaa.cn/
12.FlexExamples:http://blog.flexexamples.com/
13.Flex中文社區:http://www.flexcoders.cn/
14.Flex原創博客, 適合新手: http://liguoliang.com/category/flex/
15.藍色理想網站的Flex入門教程:http://www.blueidea.com/tech/multimedia/2004/2130.asp
16.一個不錯的英文Flex資源列表收集站點:http://ntt.cc
17.關於Flex的Blog:http://www.k-zone.cn/zblog/
18.O'Reilly, John Levine, Tony Mason, Doug Brown: lex & yacc, Second Edition, October 1992
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章