簡介
Macromedia Flash是強大的矢量動畫編輯工具在做動畫起家之後Flash一直在謀求rich internet application(ria富客戶端)的霸主地位最有影響的是已經推出了面向對象的編程腳本ActionScript並且建立起類似於java swing的類庫和相應component(組件)Flex是通過java或者net等非Flash途徑解釋mxml文件組織components並生成相應得swf文件Flex的component和flash的component很相似但是有所改進增強目前Macromedia公司已經被ADOBE公司收購當前(年月)的flex版本為 運用Flash是完全可以做到flex的效果的為什麼還需要flex呢?這裡面有兩個原因為了迎合更多的developers(開發者)Flash天生是為了designer(設計者)設計的界面還有flash的動畫概念和程序開發人員格格不入為了吸引更多的jsp/asp/php等程序員Macromedia推出了Flex用非常簡單的mxml來描述界面給jsp/asp/php程序人員使用(x/d)html非常相似而且mxml更加規范化標准化
為了一個標准大家一定聽說過微軟下一代系統longhorn在longhorn推出的同時微軟也會推出新的語言xaml一種界面描述語言與之相應的就是smart client和flex非常相似的東西Mxml和Xaml的也很相似… …這是人機交互技術的進步的重要體現即內部邏輯與外部界面交互相分離
Flex和其實沒什麼關系Macromedia用java做出來個應用把flash的技術融合到JEE裡面再用net的技術做出來個net應用把flash技術融合到net裡面去應該說flex解決了JEE裡面和net裡面最繁瑣的問題那就是web 客戶端的問題
什麼是用RIA?
傳統網絡程序的開發是基於頁面的服務器端數據傳遞的模式把網絡程序的表現層建立於HTML頁面之上而HTML是適合於文本的傳統的基於頁面的系統已經漸漸不能滿足網絡浏覽者的更高的全方位的體驗要求了而富互聯網應用(Rich Internet Applications縮寫為RIA)的出現就是為了解決這個問題
富互聯網應用程序是下一代的將桌面應用程序的交互式用戶體驗與傳統的WEB應用的部署靈活性和成本分析結合起來的網絡應用程序富互聯網應用程序中的富客戶技術通過提供可承載已編譯客戶端應用程序(以文件形式用HTTP傳遞)的運行環境客戶端應用程序使用異步客戶/服務器架構連接現有的後端應用服務器這是一種安全可升級具有良好適應性的新的面向服務模型這種模型由采用的WEB服務所驅動結合了聲音視頻和實時對話的綜合通信技術使富互聯網應用程序(RIA)具有前所未有的網上用戶體驗
Adobe RIA技術封裝讓現有的WEB技術得到了極大的保留核心價值在於大大提高了產品設計師和開發工程師的開發體驗強化了設計端和開發端的整合設計師和開發工程師們可以方便地將自己的代碼平移到新的平台上並且發布部署的方式比之前的任何一款開發工具都方便得多從而使RIA應用有更廣大的開發者基礎
Adobe RIA技術也將帶來新的桌面革命——Desktop 內容從Flash HTML/CSS/JS到PDF幾乎涵蓋了時下最流行的WEB內容載體此外可離線應用模式能讓用戶更加安全舒適地進行工作和娛樂用戶們不必再抱怨因網絡故障而造成的信息損失而且也可以借助本地資源更好地節省網絡資源因此Adobe RIA技術可以讓用戶將WEB 應用帶回桌面創造的商業應用價值和用戶體驗價值將超過以往任何技術
采用Adobe Flex & AIR技術的經典應用
eBay()
eBay桌面是構建於Adobe AIR上的一個應用程序程序創建了與eBay客戶的持久連接eBay桌面實時地直接將產品供貨通知和拍賣更新發布給買主這樣用戶不需要打開浏覽器進入eBay網站就可以獲取最新信息
納斯達克股票市場公司(x)
NASDAQ Market Replay使用Adobe Flex和Adobe AIR在桌面上發布一個RIA讓金融專業人士能夠重放任何時間點市場活動的詳情
紐約時報公司()
紐約時報公司正在開始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有眾多的相似點但是不同之處仍然很多盡管公用ActionScript但是使用的庫並不完全相同更合適的說法是兩者使用著兩套具有極大功能重疊范圍的庫
Flash偏向的是美術動畫設計師人員所以更容易發揮特效處理的優勢Flex偏向開發人員所以容易做出具有豐富交互功能的應用程序
Flash只能以ActionScript腳本的形式開發(舞台被關聯到一個稱之為 document class的類裡)另外舞台元素也是可以綁定腳本的不過從軟件工程的角度講不建議這樣用Flex還可以使用稱作mxml的標記語言來描述應用的外觀和行為mxml中可以直接嵌入ActionScript腳本
由於第三點而造成的兩者市場定位不同Flex是面向企業級的網絡應用程序Flash則面向諸如平面動畫廣告設計等多媒體展示程序
借助Flash Lite這一移動設備上的FlashplayerFlash可以開發移動應用Flex則不行
Flash的編程模型是基於時間軸的Flex的則是基於窗體雖然它運行在網頁裡
詞法分析器生成器
flex (fast lexical analyser generator) 是 Lex 的另一個替代品它經常和自由軟件 Bison語法分析器生成器 一起使用Flex 最初由 Vern Paxson 於 年用 C語言 寫成
Flex 手冊裡對 Flex 描述如下flex是一個生成掃描器的工具能夠識別文本中的詞法模式flex讀入給定的輸入文件如果沒有給定文件名的話則從標准輸入讀取從而獲得一個關於需要生成的掃描器的描述此描述叫做 規則由正則表達式和 C代碼對組成flex 的輸出是一個 C 代碼文件——lexyyc——其中定義了 yylex() 函數編譯輸出文件並且和 lfl庫鏈接生成一個可執行文件當運行可執行文件的時候它分析輸入文件為每一個正則表達式尋找匹配當發現一個匹配時它執行與此正則表達式相關的 C代碼
一個相似的用 C++語言 的詞法分析器生成器是 flex++包含在 flex 軟件包裡
Flex 不是 GNU 工程但是 GNU 為 Flex 寫了手冊
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19519.html