資源描述:
《cairngorm開發(fā)框架》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第22章Cairngorm開發(fā)框架Cairngorm是一種開源框架,由Adobe開發(fā)團(tuán)隊(duì)設(shè)計。使用Cairngorm框架能快速地建立起RIA應(yīng)用程序,適用于開發(fā)中大型RIA應(yīng)用程序。Cairngorm框架不但能提高開發(fā)效率,也有利于團(tuán)隊(duì)合作。本章將為讀者介紹Cairngorm框架的基礎(chǔ)知識、運(yùn)行原理和機(jī)制、使用方法等。22.1Cairngorm簡介Cairngorm框架是開發(fā)RIA應(yīng)用程序的輕量級的框架,可應(yīng)用于企業(yè)級的軟件開發(fā),也可結(jié)合J2EE或.Net等開發(fā)技術(shù)。由于Flex4.0技術(shù)是由事件驅(qū)動的,所以事件處
2、理函數(shù)很多。假設(shè)一個應(yīng)用程序中存在大量事件,若每個事件的處理函數(shù)都定義于一個MXML文件或AS文件中,代碼就會很混亂、不利于修改。Cairngorm框架將每個事件處理封裝為一個類。這樣,不但代碼整潔了,而且也提高了重用性。22.2Flex4.0中如何添加Cairngorm框架Flex4.0中添加Cairngorm框架的步驟如下所示。(1)在瀏覽器中輸入“http://labs.adobe.com/wiki/index.php/Cairngorm”,打開Cairngorm框架的下載頁面。(2)單擊“Downloads
3、”標(biāo)簽下的“here”鏈接,下載最新的Cairngorm框架。(3)解壓縮Cairngorm包。(4)在需要添加Cairngorm框架的Flex工程上右擊,彈出快捷菜單。22.2Flex4.0中如何添加Cairngorm框架(5)選擇“Properties”命令,打開工程屬性對話框。(6)單擊“FlexBuildPath”項(xiàng)下“LibraryPath”標(biāo)簽,打開庫設(shè)置頁面。(7)單擊“AddSWC…”按鈕,彈出選擇SWC文件對話框。(8)在文本框中輸入“Cairngorm.swc”文件路徑。單擊“OK”按鈕,完成添
4、加Cairngorm框架。22.3Cairngorm框架中的基礎(chǔ)類Cairngorm框架的運(yùn)行機(jī)制是以類為基礎(chǔ),因?yàn)镃airngorm框架是由ActionScript3.0語言編寫的,而ActionScript3.0語言是一種面向?qū)ο蟮恼Z言。本小節(jié)將介紹Cairngorm框架中的基礎(chǔ)類的作用和定義。大部分基礎(chǔ)類不能直接使用,用戶需要繼承基礎(chǔ)類來完成特定的功能。22.3.1類的文件組織結(jié)構(gòu)Cairngorm框架中的類不是雜亂無章地存放,而是以特定的文件組織結(jié)構(gòu)存放。每個文件夾有特殊的含義,存放不同意義的基礎(chǔ)類?!癰u
5、siness”文件夾中存放有關(guān)服務(wù)器端的類。“commands”方件夾存放命令類?!癱ontrol”文件夾存放前臺控制器類?!癿odel”文件夾存放應(yīng)用程序模型類;“view”文件夾存放視圖類及MXML文件;“vo”文件夾存放數(shù)據(jù)模型類。22.3.2處理正?;虍惓=Y(jié)果的Responder類Responder類是一個接口類,用以處理正?;虍惓=Y(jié)果。Responder類定義了兩個抽象的方法:onResult()方法和onFault()方法。onResult()方法用于操作正常時的處理,onFault()方法用于操作異常
6、時的處理。一般在Command類中實(shí)現(xiàn)Responder接口類的兩個方法。有關(guān)Responder接口類的實(shí)現(xiàn)將在后續(xù)章節(jié)中介紹。22.3.3查找服務(wù)的ServiceLocator類ServiceLocator類用于查找服務(wù),如、等。ServiceLocator類可查找不同類型的服務(wù),因此每種類型的服務(wù)都有對應(yīng)的方法。22.3.4處理事件的Command類Command類繼承于ICommand接口類,用于處理某一事件。ICommand類中定義了execut
7、e抽象方法,用于執(zhí)行相應(yīng)處理。22.3.5創(chuàng)建新事件的CairngormEvent類CairngormEvent類用于自定義用戶事件。包含一個成員變量data和一個構(gòu)造函數(shù)。data變量可存儲任何類型的數(shù)據(jù)。22.3.6管理事件的CairngormEventDispatcher類CairngormEventDispatcher類用于管理事件。22.3.7監(jiān)聽事件的FrontController類FrontController類用于監(jiān)聽事件。一旦事件發(fā)生,前臺控制器找到事件的相應(yīng)處理命令類執(zhí)行。22.3.8存儲數(shù)據(jù)模
8、型的ModelLocator類ModelLoacator類是一種接口類,用于應(yīng)用程序的數(shù)據(jù)模型??蓪?yīng)用程序需要顯示的數(shù)據(jù)及狀態(tài)變量都定義于ModelLocator類中。ModelLocator類相當(dāng)于應(yīng)用程序的“數(shù)據(jù)庫”,方便修改與刪除。22.3.9輔助操作視圖的ViewHelper類ViewHelper類用于輔助操作視圖。使用ViewHelper類可在A