摘要:Flex是一種基于標(biāo)準(zhǔn)編程模型的高效RIA開發(fā)產(chǎn)品集,F(xiàn)lex最大的特點(diǎn)是基于全球流行的網(wǎng)絡(luò)動(dòng)畫平臺(tái)——Macromedia Flash。通過(guò)Flex技術(shù),開發(fā)人員可以將RIA程序編譯成為Flash文件,為Flash Player所接受,也就是說(shuō),F(xiàn)lex技術(shù)所開發(fā)出來(lái)的程序?qū)τ诖蟛糠譃g覽者而言并不需要安裝額外的客戶端支持,這是其優(yōu)勢(shì)所在。
關(guān)鍵詞:Flex
1 Flex開發(fā)環(huán)境簡(jiǎn)介
Flex自Flex2.0版本發(fā)展至今,框架逐漸合理化,效率也相對(duì)提高。更加貼近了企業(yè)級(jí)網(wǎng)站開發(fā)的需求。目前最新的編譯環(huán)境為Flash Builder4.0 版本。此開發(fā)環(huán)境可以集成到Eclipse產(chǎn)品當(dāng)中或者單獨(dú)使用,但是界面的風(fēng)格仍然和Eclipse相類似。
2 Flex技術(shù)元素
2.1 MXML基于XML描述應(yīng)用程序界面的語(yǔ)言;
2.2 ActionScript符合ECMA(歐洲計(jì)算機(jī)制造商協(xié)會(huì))標(biāo)準(zhǔn)的腳本語(yǔ)言,負(fù)責(zé)處理業(yè)務(wù)邏輯和業(yè)務(wù)建模;
2.3 Flex SDK Flex的基礎(chǔ)類庫(kù);
2.4 通信服務(wù)Flex支持Adobe公司自定義的通信協(xié)議AMF,它能夠?qū)lash/Flex對(duì)象快速序列化、反序列化,采用二進(jìn)制壓縮傳輸數(shù)據(jù),具有數(shù)據(jù)安全性高、傳輸快的優(yōu)點(diǎn)。
3 Flex客戶端技術(shù)
客戶端的開發(fā)是Flex開發(fā)企業(yè)級(jí)Web應(yīng)用系統(tǒng)的一大強(qiáng)項(xiàng),其開發(fā)要點(diǎn)如下:
3.1 模塊化的開發(fā) 在Flex中可以針對(duì)每個(gè)頁(yè)面建立一些MXML Component文件,再將若干MXML Component文件組織成一個(gè)MXML Module文件,最后若干MXML Module文件可以包含在作為主界面的Application應(yīng)用中。這種開發(fā)模式可以使大型Flex應(yīng)用的功能模塊劃分更加清晰,避免了使用過(guò)多組件而導(dǎo)致SWF文件過(guò)大、應(yīng)用加載時(shí)間過(guò)長(zhǎng),提高了軟件的可用性。
3.2 事件機(jī)制 事件(Event)讓程序員知道用戶何時(shí)與界面組件交互以及在組件的外觀或生命周期中何時(shí)發(fā)生重要變化,如組件的創(chuàng)建、銷毀和大小調(diào)整等。事件對(duì)象(Event Object)是指某個(gè)對(duì)象包含發(fā)生的特定事件的相關(guān)信息,當(dāng)通知事件偵聽器發(fā)生了事件時(shí),這些相關(guān)信息將被發(fā)送到所有偵聽器。
事件對(duì)象創(chuàng)建后,被Flash Player分配給指定的目標(biāo)事件;事件對(duì)象穿過(guò)Display List(顯示架構(gòu))的每個(gè)層次,到達(dá)目標(biāo)事件。有時(shí)事件對(duì)象會(huì)像“冒泡”的方式按原路返回。這個(gè)過(guò)程被稱作事件流(Event Flow),它可分為三個(gè)階段:①捕獲階段:確定事件的傳播途徑和在該路徑上尋找事件捕捉者;②目標(biāo)階段:觸發(fā)事件捕捉者來(lái)捕捉事件;③冒泡階段:把目標(biāo)階段的事件沿著路徑繼續(xù)向上傳播。
并不是每個(gè)事件對(duì)象都必須參與這三個(gè)階段,當(dāng)一些事件對(duì)象的目標(biāo)對(duì)象不在顯示架構(gòu)中時(shí),那么這些事件對(duì)象不經(jīng)過(guò)事件流的捕獲和冒泡階段。
3.3 數(shù)據(jù)綁定機(jī)制 Flex技術(shù)提供了一種新的數(shù)據(jù)關(guān)聯(lián)機(jī)制——數(shù)據(jù)綁定,即把數(shù)據(jù)庫(kù)中的一個(gè)數(shù)據(jù)對(duì)象和另一個(gè)組件對(duì)象或事件對(duì)象關(guān)聯(lián)起來(lái)。當(dāng)數(shù)據(jù)對(duì)象發(fā)生變化時(shí),會(huì)向Flex發(fā)出某種事件;Flex捕捉到這個(gè)事件后,會(huì)觸發(fā)“綁定”,把數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象復(fù)制給組件對(duì)象或事件對(duì)象。這樣無(wú)需添加代碼,數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象就會(huì)和組件對(duì)象或事件對(duì)象產(chǎn)生聯(lián)動(dòng)效果,這就是數(shù)據(jù)綁定。
4 結(jié)束語(yǔ)
Flex可以在企業(yè)內(nèi)部或在Web上創(chuàng)建并交付豐富Internet應(yīng)用程序(RIA),堪稱最完整、最強(qiáng)大的RIA開發(fā)解決方案。它使企業(yè)能夠創(chuàng)建個(gè)性化的豐富多媒體應(yīng)用程序,極大地提高用戶的體驗(yàn),徹底革新人與Web的交互關(guān)系。
傳統(tǒng)的WEB開發(fā),在表現(xiàn)層次受到非常大的約束,同時(shí)因?yàn)闉g覽器本身解釋機(jī)制的不同,導(dǎo)致采用相同的HTML和CSS代碼包括其顯示效果有很多不同,同時(shí)javascript雖然可以進(jìn)行一些RIA技術(shù)的開發(fā),但是對(duì)于不同的瀏覽器其兼容性也不相同。Flex技術(shù)不僅輕松解決了所有表現(xiàn)層的技術(shù)問題,讓客戶感受前所未有的WEB應(yīng)用體驗(yàn),更主要的是,基與FLASH AS3.0的純面向?qū)ο蠛徒M件的構(gòu)架,讓B/S結(jié)構(gòu)表現(xiàn)層的開發(fā)層次分明,結(jié)構(gòu)完整協(xié)調(diào).在提供強(qiáng)大華麗表現(xiàn)的同時(shí),大大節(jié)約維護(hù)成本。
參考文獻(xiàn):
[1]呂輝等編著.劉暉、歐陽(yáng)、楊建英譯.Flex從入門到實(shí)踐.清華大學(xué)出版社,2009.
[2]黃曦等編著.Flex 4.0 RIA開發(fā)詳解.電子工業(yè)出版社,2010.