Flex技術基礎培訓_第1頁
Flex技術基礎培訓_第2頁
Flex技術基礎培訓_第3頁
Flex技術基礎培訓_第4頁
Flex技術基礎培訓_第5頁
已閱讀5頁,還剩61頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Flex技術基礎培訓二零壹二年01二月20232Flex簡介Flex通常是指AdobeFlex,是最初由Macromedia公司在2004年3月發(fā)布的,基于其專有的MacromediaFlash平臺,它是涵蓋了支持RIA(RichInternetApplications)的開發(fā)和部署的一系列技術組合。2004年Micromedia發(fā)布Flex1.02005年Adobe兼并Micromedia2006年Adobe發(fā)布Flex2.02008年Adobe發(fā)布Flex3.02010年Adobe發(fā)布Flex4.02011年Adobe發(fā)布Flex4.501二月20233Flex概述Flex是Adobe公司近兩年推出的重量級產品與技術。Flex的出現(xiàn)就是為了高效地開發(fā)和部署富互聯(lián)網(wǎng)應用程序。Flex是Adobe公司推出的一系列工具和技術,使開發(fā)人員可以開發(fā)和部署可升級的富互聯(lián)網(wǎng)應用程序(RIAs)。富互聯(lián)網(wǎng)應用程序(RIAs)是指像使用Web一樣的簡單方式來部署富客戶端程序。這種程序具有比HTML更加健壯、反應更加靈敏和互動性更豐富的特點。01二月20234Flex概述Flex提供了一種現(xiàn)代的、基于標準的語言來支持公共模板設計、客戶端運行環(huán)境、編程模型、開發(fā)模型和高級數(shù)據(jù)服務。Flex采取了開源的策略,所以開發(fā)者可以在Flex原代碼的基礎上修改。新版Flex4中的開發(fā)環(huán)境已經(jīng)更名為FlashBuilder,而不再是FlexBuilder系列。Flex采用事件驅動機制,程序的執(zhí)行過程嚴格按照事件發(fā)生的時間順序執(zhí)行。本節(jié)將介紹為讀者Flex開發(fā)技術的特點、優(yōu)點和新特性。01二月20235Flex是什么?Flex是一種創(chuàng)建RIA(RichInternetApplications)快速有效的方法之一。RIA是一種可能代替?zhèn)鹘y(tǒng)HTML應用系統(tǒng)的解決方案。RIA技術既可以像Web一樣很簡單的部署用戶客戶端程序,同時交互性和表現(xiàn)力等方面也大大超過了傳統(tǒng)Web應用系統(tǒng)。FlexBuilderFlexSDKMxmlActionScriptFlex01二月20236RIA出現(xiàn)的背景在RIA出現(xiàn)之前,軟件開發(fā)都是基于C/S(Client/Server)或B/S(Browser/Server)架構,但兩者各有缺點。C/S的主要缺點:開發(fā)、部署成本高

傳統(tǒng)B/S結構的軟件需要針對不同OS開發(fā)對應的版本,且軟件更新?lián)Q代的速度越來越快自然成本會很高。維護成本高

服務器和客戶端都需要維護管理,工作量較大且技術支持復雜。B/S的主要缺點:受限于HTML技術,很難像C/S那樣產生豐富,個性的客戶端界面;存在瀏覽器兼容性差問題;Server端負荷較重,響應速度慢;

絕大多數(shù)處理都集中在Server端,并且每次響應都要刷新頁面(利用Ajax技術會有所緩解)。隨著軟件的飛速發(fā)展,此時需要出現(xiàn)一種能夠摒棄上訴缺點的新的技術形式–RIA出現(xiàn)了。01二月20237目前比較流行的RIA技術Adobe的

Flex微軟的

SilverlightSun的

JavaFX01二月20238客戶端技術JavaFXSilverlightFlash/FlexAJAXHTML5OpenLaszloMozillaXUL01二月20239Flex與其它RIA技術比較Flex是一種混合的技術,這種語言技術的設計借鑒了其他優(yōu)秀的現(xiàn)代標準語言,如XML、JAVA等。其中,MXML就是基于XML構建的描述界面的語言,同時借鑒了HTML等Web技術。而ActionScript也是大量的借鑒了JavaScript腳本和Java語言的語法組成。傳統(tǒng)的基于HTML的應用程序部署成本低、結構簡單、簡單易學。很多用戶和開發(fā)人員于是放棄了現(xiàn)代高性能計算機能帶來的用戶體驗,轉而追求數(shù)據(jù)的快速訪問,從而喪失了一些重要的UI功能。RIA利用相對健壯的客戶端描述引擎。RIA的另一個好處是:數(shù)據(jù)能夠被緩存在客戶端,從而可以實現(xiàn)一個比基于HTML的響應速度更快且數(shù)據(jù)往返于服務器的次數(shù)更少的用戶界面。01二月202310FlexVSHTML/JavaScript/AjaxFlex技術是在Web技術發(fā)明之后開發(fā)出來的。Flex技術中的MXML語言就是基于XML,并且借鑒了HTML描述語言。所以,MXML和HTML的作用實質上是一樣的,都是為了更好的描述界面布局和組件樣式。不同的是,MXML采用了更加先進的設計模式,使得MXML代碼更容易閱讀和編寫。Flex中的ActionScript是一種腳本語言,用來處理客戶端的邏輯運算。ActionScript的設計同樣也參照了JavaScript,與JavaScript作用一樣。并且,ActionScript和JavaScript兩者的語法也極其相似,這使得開發(fā)者學習新的ActionScript語言的門檻降低。01二月202311FlexVSJava/JavaFXFlex是一個類似于Java和JavaSwing的平臺。Flex中的腳本語言ActionScript與Java上的語法和結構都極其相似。它繼承了Java中包的概念,在設計中,參照了Java的大部分特性。同F(xiàn)lex一樣,Java也可以把應用程序部署到Web上運行。但是編譯之后的文件卻遠比Flex大,因為Java的運行環(huán)境JRE和開發(fā)包JDK擁有比Flex多得多的類庫,而且這些類庫在客戶端可能不需要。所以,很多Java開發(fā)者開始了解并學習Flex,計劃把Flex和Java更好的結合起來01二月202312FlexVSSilverlight/XAMLSilverlight是微軟公司的富網(wǎng)絡應用程序的解決方案。Silverlight的XAML描述語言同樣也是基于XML設計的。XAML就相當于Flex中的MXML,兩者的功能一樣,而且語法也類似。Silverlight客戶端所使用的邏輯語言更加廣泛,因為它是基于.NET框架設計的。這些語言包括C#、JScript、VB等。不過Silverlight技術剛剛推出不久,其中的很多功能有待完善。而且,在客戶端需要安裝Silverlight控件。01二月20231301二月202314Flex技術特點1.增強用戶體驗2.完善的開發(fā)環(huán)境3.通用的配置環(huán)境4.企業(yè)級的特征5.消除頁面加載6.標準的架構7.與瀏覽器兼容持久層業(yè)務邏輯層頁面展現(xiàn)層FlexJsp01二月202315Flex基本架構Flex的基本架構包括4部分1.AdobeSDK2.AdobeFlexCharting3.AdobeFlexDataServices4.AdobeFlexBuilder01二月202316Flex基本架構FlexChartingMXML、ActionScript3.0Flex框架及其類庫組件編譯器、調試器可擴展圖形組件FlexDataServicesRPC服務消息服務數(shù)據(jù)管理服務FlashBuilder4FlexSDK401二月202317Flex和FlexSDK是什么?Flex是一個開源、免費的框架,用于構建在Adobe?Flash?Player或AdobeAIR?runtimes環(huán)境內運行的跨瀏覽器、桌面和操作系統(tǒng)的富網(wǎng)絡應用。FlexSDK(FlexSoftwareDevelopmentKit)除了包括Flex框架以外還包括compilers(編譯器)和debugger(調試器)等開發(fā)工具。(這也意味著沒有FlashBuilder等IDE同樣可以開發(fā)Flex應用,但效率會很低。)01二月202318Flex原理當你編譯一個Flash程序時,F(xiàn)lash開發(fā)環(huán)境把所有的可視化元素,時間軸指令和ActionScript中的業(yè)務邏輯編譯為SWF文件。同樣地,F(xiàn)lex程序中的MXML和ActionScript代碼首先全部被轉換為ActionScript然后編譯為SWF文件。當你把SWF文件部署到服務器上時,使用者可以從服務器獲取到這個程序。01二月202319Flex運行機制Flex只是一種客戶端技術,同時也屬于Flash平臺。Flex代碼最終被編譯成SWF文件運行在Flash播放器(FlashPlayer)中。SWF文件可以單獨在用戶終端運行,但是必須要安裝FlashPlayer。也可以在各種流行的瀏覽器中運行,瀏覽器必須安裝FlashPlayer插件。SWF文件是一個壓縮文件,可以通過FlashPlayer呈現(xiàn)出來。由于SWF文件很小,所以有很快的網(wǎng)絡下載速度。用戶要想運行一個Flex應用程序,只需要通過網(wǎng)絡或者其他途徑獲取SWF文件,就可以運行在裝有FlashPlayer插件的瀏覽器中。MXMLActionScriptSWF01二月202320Flex應用程序的編譯和發(fā)布01二月202321Flex應用的組成Flex框架容器組件、交互控件、數(shù)據(jù)綁定和事件等MXML一種標記語言,F(xiàn)lex程序的主文件ActionScript實現(xiàn)Flex程序的動態(tài)行為特性CSS通過設置組件屬性改變其外觀圖形資源數(shù)據(jù)01二月202322MXML基本語法MXML是遵循W3CXML標準的標記語言。MXML中融合了眾多的標準。1.XML標準 2.DOMLevel3事件模型標準3.Web服務標準 4.Java標準5.HTTP標準 6.圖像標準7.CSS標準可以使用任何的文本編輯器編寫MXML。01二月202323MXML基礎MXML是XML的一種擴展行語言,所以MXML繼承了XML的書寫規(guī)則。MXML的書寫規(guī)則如下。所有元素要有開始和結束標記。如果一個標記被打開,那么在對應的地方應該被關閉。計算機的邏輯是很嚴謹?shù)?,如果某個標記只有開始沒有結束,系統(tǒng)就會發(fā)生錯誤。區(qū)分大小寫。XML是區(qū)分大小寫的,所以MXML同樣也是。<book>和<Book>在XML中是不同的兩個元素標記。<mx:Panel>和<mx:panel>當然在MXML中也是不同的。需要聲明。在XML文檔的第一行通常都需要聲明版本和編碼等信息。MXML在Flex應用中進行界面組件的布局。MXML也可以定義Flex應用的非可視部分訪問服務器端數(shù)據(jù)源界面組件與數(shù)據(jù)源之間的數(shù)據(jù)綁定01二月202324MXML文件結構<?xmlversion="1.0"encoding="utf-8"?><s:Application xmlns:fx="/mxml/2009" xmlns:s="library:///flex/spark" xmlns:mx="library:///flex/halo"> <s:Buttony="129"label="計算"x="42"/></s:Application>MXML應用程序采用XML文件格式一個程序中只能出現(xiàn)一個s:Application節(jié)點將s定義為XML的命名空間使用s命名空間中定義組件Flex主程序文件由于要使用Flex組件,而Flex組件定義于“l(fā)ibrary:///flex/spark”命名空間中,所以要使用“xmlns:s="library:///flex/spark”的命令格式導入組件的命名空間,以此來使用組件。這種方法與JAVAWeb中使用自定義標簽類似,在使用之前也必須通過taglib命令導入標簽庫描述文件,即:

<%@tagliburi=”http://com.soft/tags”prefix=”s”%>,其中”xmlns”對應于“taglib”命令;”http://com.soft/tags”對應于“l(fā)ibrary:///flex/spark”命名空間;prefix=”s”對應于xmlns:s后面的s,表示標簽的使用前綴01二月202325Flex組件概述Flex應用程序的界面通常由各種各樣的組件來構建。例如,一個登錄框應用程序包括了標簽組件、輸入框組件、按鈕組件等。不同的組件有其特有的功能,如按鈕組件的單擊動作和雙擊動作。用戶可選擇不同的組件來滿足應用程序的要求。Flex組件是指用MXML標準和ActionScript3.0代碼定義的一種可重用的控件,包括了屬性(Properties)、方法(Methods)、事件(Events)、樣式(Styles)。MXML是類似于XML的標簽式語言。MXML文件的后綴后為“.mxml”。使用MXML標準定義的內容可由MXML編譯器編譯成SWF文件。FlashBuilder4在編譯程序時就調用了MXML編譯器。Flex4中提供了許多基礎的Flex組件,如文本組件、按鈕組件、下拉框組件等。組件根據(jù)是否由Adobe公司提供,可分為基礎Flex組件和自定義組件。01二月202326MXML組件使用界面組件定制界面組件實現(xiàn)數(shù)據(jù)綁定使用CSS樣式單使用特效存儲驗證數(shù)據(jù)格式化數(shù)據(jù)觸發(fā)事件01二月202327ActionScript概述ActionScript3.0是運行于FlashPlayer運行環(huán)境的編程語言,使用新的ActionScript虛擬機AVM2。AVM2使用新的二進制指令集,并在性能上有很大改進。同時,ActionScript3.0使用面向對象模型,擴展和提高了應用程序接口。ActionScript3.0代碼被FlexBuilder或Flash中的編譯器編譯成二進制數(shù)據(jù)。這種二進制數(shù)據(jù)被裝入SWF文件中,然后運行于FlashPlayer運行環(huán)境中。ECMAScriptJavaScriptActionScript都基于ECMAScript01二月202328ActionScript使用內聯(lián)引用將ActionScript直接作為事件的屬性值級聯(lián)引用將ActionScript置于<fx:Script>塊中外聯(lián)引用通過<fx:Script>的source屬性引入獨立的.as文件01二月202329在MXML文件中直接編寫ActionScript在MXML文件中編寫ActionScript3.0代碼,只要在MXML文件下插入<fx:Script>標簽。在MXML文件中的<mx:Script>標簽下使用ActionScript3.0。在FlexBuilder3的編輯器中輸入標簽會自動封閉。例如,輸入“<mx:Script>”后,自動生成封閉區(qū)域“<mx:Script><![CDATA[]]></mx:Script>”。01二月202330在AS文件中編寫ActionScriptActionScriptClass、ActionScriptFile和ActionScriptInterface都屬于AS文件。它們三者的文件格式都為AS格式,不同的只是其中的定義有所區(qū)別。Flex應用程序中最常使用的AS文件是ActionScriptClass,也就類的定義。用戶可使用ActionScriptClass創(chuàng)建向導來完成創(chuàng)建。01二月202331在MXML中引用AS文件MXML文件中若要引用AS文件有兩種方式:一種是引用使用<fx:Script>標簽中的“source”屬性。這種方式可看成是將MXML文件和AS文件分離,從而減小MXML文件的代碼,提高重用性。另外一種方法是引用ActionScriptClass(類)。使用這種方法的前提是AS文件中定義的是一個類。01二月202332ActionScript3.0語法基礎ActionScript

3.0是一種運行在FlashPlayer的編程語言,是由ActionScript虛擬機(AVM)執(zhí)行的。ActionScript3.0版本提供了更好的面向對象思想的設計模型,使程序員更容易編寫和設計復雜的代碼。ActionScript3.0是Flex中主要的編程語言,是學習Flex技術的基礎。變量和常量數(shù)據(jù)類型運算符語句函數(shù)01二月202333Flex數(shù)據(jù)類型程序中使用的各種變量都應預先加以定義,即先定義,后使用。對變量的定義可以包括三個方面:數(shù)據(jù)類型,存儲類型,作用域。數(shù)據(jù)類型表示了變量的性質、表示形式、占據(jù)存儲空間等。在ActionScript3.0語言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型:其值不可以再分解為其他類型。復雜數(shù)據(jù)類型:復雜數(shù)據(jù)類型根據(jù)已定義的一個或多個數(shù)據(jù)類型定義。數(shù)據(jù)類型取值范圍缺省值Booleantrue/falsefalseint整數(shù),-2,147,483,648~2,147,483,647之間0Null僅包含一個null值nullNumber雙精度浮點類型NaNString字符類型nulluint非負整數(shù),0~2,147,483,647之間0undefined可以認為是常量,即“undefined”undefined01二月202334Flex常量與變量對于基本數(shù)據(jù)類型量,按其取值是否可改變又分為常量和變量兩種。在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量,其值可變的量稱為變量。常量和變量可與數(shù)據(jù)類型結合起來,如整型常量、整型變量、實型常量、實型變量、字符串常量、字符串變量。在程序中常量是可以不經(jīng)說明而直接引用的,而變量則必須先定義后使用。變量的數(shù)據(jù)類型是可以轉換的。轉換的方法有兩種,一種是自動轉換,一種是強制轉換。01二月202335Flex運算符和表達式ActionScript3.0語言中運算符和表達式很多。豐富的運算符和表達式使得ActionScript3.0語言功能強大。ActionScript3.0語言的運算符不僅具有不同的優(yōu)先級,而且還有一個特點,就是它的結合性。在表達式中,各運算量參與運算的先后順序不僅要遵守運算符優(yōu)先級別的規(guī)定,還要受運算符結合性的制約:到底是自左向右進行運算還是自右向左進行運算。這種結合性增加了ActionScript3.0語言的復雜性。01二月202336ActionScript3.0運算符簡介ActionScript3.0語言的運算符可分為以下幾類:算術運算符用于各類數(shù)值運算,包括加“+”、減“-”、乘“*”、除“/”、求余“%”、自增“++”、自減“--”,共7種。關系運算符用于比較運算,包括大于“>”、小于“<”、等于“==”、大于等于“>=”、小于等于“<=”和不等于“!=”,共6種。邏輯運算符用于邏輯運算,包括與“&&”、或“||”、非“!”,共3種。位操作運算符用于二進制位運算,包括位與“&”、位或“|”、位非“~”、位異或“^”、左移“<<”、右移“>>”,共6種。01二月202337ActionScript3.0運算符簡介特殊運算符,如括號“()”,下標“[]”,取XML屬性“@”等。賦值運算符用于賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)3類,共11種。條件運算符用于條件求值。運算符為“?:”。逗號運算符用于把若干表達式組合成一個表達式。運算符為“,”。01二月202338Flex程序設計的基本結構從程序流程的角度來看,程序可以分為三種基本結構:順序結構、分支結構和循環(huán)結構。這3種基本結構可以組成所有的各種復雜程序。程序設計的基本組成部分是語句,不同語句組成不同的程序結構。例如,for語句、while語句組成循環(huán)結構程序。順序結構程序是指程序中的語句由表達式語句、函數(shù)調用語句、控制語句、復合語句、空語句或賦值語句構成。順序結構是程序中最基本的結構之一,最大的特點是程序是以從上至下的順序執(zhí)行。01二月202339Flex程序設計的基本結構分支結構程序是指程序中存在分支的邏輯,需要分別處理各分支的邏輯。分支結構程序常用的語句有:if語句、if…else語句、if…else…if語句、switch語句。分支結構是程序中最基本的結構之一,最大的特點是程序是分支處理。循環(huán)結構是程序中一種很重要的結構。其特點是:在給定條件成立時,反復執(zhí)行某程序段,直到條件不成立為止。給定的條件稱為循環(huán)條件,反復執(zhí)行的程序段稱為循環(huán)體用goto語句和if語句構成循環(huán)。while語句。do-while語句。for語句。01二月202340Flex函數(shù)函數(shù)是ActionScript3.0源程序的基本模塊,通過對函數(shù)模塊的調用實現(xiàn)特定的功能。ActionScript3.0語言不僅提供了極為豐富的庫函數(shù),還允許用戶建立自己定義的函數(shù)。用戶可把算法編成一個個相對獨立的函數(shù)模塊,然后通用調用來使用函數(shù)??梢哉fActionScript3.0程序的大部分工作都是由各式各樣的函數(shù)完成的。01二月202341Flex函數(shù)概述1.函數(shù)定義角度函數(shù)可分為庫函數(shù)和用戶定義函數(shù)。庫函數(shù)是指由ActionScript3.0定義的函數(shù)。用戶無須定義,只需在程序中直接使用函數(shù)。用戶定義函數(shù)是指由用戶按需要自定義的函數(shù)。2.函數(shù)返回值角度有返回值函數(shù):此類函數(shù)被調用執(zhí)行完后將向調用者返回一個執(zhí)行結果,稱為函數(shù)返回值。無返回值函數(shù):此類函數(shù)用于完成某項特定的處理任務,執(zhí)行完成后不向調用者返回函數(shù)值。3.函數(shù)數(shù)據(jù)傳送角度無參函數(shù):函數(shù)定義、函數(shù)說明及函數(shù)調用中均不帶參數(shù)。有參函數(shù):也稱為帶參函數(shù)。在函數(shù)定義及函數(shù)說明時都有參數(shù),稱為形式參數(shù)(簡稱為形參)。01二月202342Flex事件和事件機制事件是在程序運行中,觸發(fā)的一個響應。在ActionScript3.0中,事件的處理得到了統(tǒng)一并且更符合標準,統(tǒng)一用單一的事件處理模型,廢棄了之前版本的眾多的事件處理機制。本章將會詳細介紹ActionScript3.0中的新的單一的事件處理機制。事件是系統(tǒng)與用戶之間直接的交互方式。當用戶向系統(tǒng)發(fā)出指令,就相應的產生了一個事件,通過事件,用戶就可以與系統(tǒng)對話。例如,當用戶單擊鼠標的時候,就會產生一個鼠標單擊的事件,系統(tǒng)就會根據(jù)用戶單擊的對象,來判斷用戶發(fā)出的指令。對象是保存數(shù)據(jù)的按鈕,用戶單擊之后,程序就會執(zhí)行保存數(shù)據(jù)的事件函數(shù)。在ActionScript3.0中,注冊事件的偵聽函數(shù)是通過addEventListener()方法的。通過這個方法,對象可以隨時偵聽事件的發(fā)生,然后觸發(fā)并執(zhí)行函數(shù)。事件的類型有幾種,其中常見的包括鼠標事件、鍵盤事件、文本事件、加載進度事件等等。01二月202343Flex動畫效果在設計應用程序模型時,默認的組件界面往往不能滿足用戶的要求。Flex4.0組件支持自定義界面。從廣義上講,美化界面不僅包括組件靜態(tài)外觀,也包括組件的動態(tài)效果。自定義事件效果是指當組件的一個事件被觸發(fā),且這個事件允許有效果,那么這個事件就可以應用自定義的效果。在Flex里這種效果觸發(fā)器叫做“Behaviors”。組件中一般都有許多效果觸發(fā)器(Behaviors)。特定的組件都有其特殊的效果事件。Move,Resize,F(xiàn)ade,Zoom,Rotate01二月202344Flex用CSS美化界面CSS標準最早用于網(wǎng)頁開發(fā)中,使得程序和界面分離。Flex也支持使用CSS。CSS由于其簡單、方便的優(yōu)點,逐漸成了Flex應用程序美化界面的最重要方法。CSS是一種層疊樣式表,可以有效地對布局、字體、顏色、背景和其它效果進行精確的控制。屬性名和屬性值之間以“:”符分隔。不同屬性名間以“;”符分隔。以下代碼定義了兩個樣式“.myFontStyle”、“.myButton”。一個常見的CSS定義包括樣式名、屬性、屬性值。對于特殊的需求,需要其他語法支持,如單位、規(guī)則等。下面將詳細介紹CSS語法。Flex4.0應用程序中的CSS樣式都是使用<fx:Style>組件定義的。定義的方式有兩種:<fx:Style>組件內部定義CSS,<fx:Style>組件調用外部CSS。01二月202345Flex數(shù)據(jù)處理數(shù)據(jù)是程序處理的主要對象。在應用程序中最核心的部分也是數(shù)據(jù)處理。數(shù)據(jù)處理包括數(shù)據(jù)綁定、數(shù)據(jù)存儲、數(shù)據(jù)驗證、數(shù)據(jù)格式化等內容。數(shù)據(jù)綁定是指用戶可以將某個屬性與其他的屬性或變量相關聯(lián)。這樣,當被綁定的屬性或變量發(fā)生改變時,綁定項同時發(fā)生改變。數(shù)據(jù)綁定是Flex技術中一項非常有用的技術,可以有效地減少程序代碼,提高運行效率。數(shù)據(jù)存儲是指在編程過程中將數(shù)據(jù)以特定的形式存儲。簡單的數(shù)據(jù)模型可以用簡單的數(shù)據(jù)類型存儲,如int型、String型、Array型。對于復雜的邏輯模型,需要將數(shù)據(jù)合理的存儲。Flex4.0提供了<fx:Model>、<fx:Object>、<fx:XML>3種存儲復雜的數(shù)據(jù)模型。數(shù)據(jù)驗證是指應用程序中對輸入的數(shù)據(jù)進行某種方式的校驗。本章將詳細介紹Flex4.0數(shù)據(jù)驗證的基本方法和自定義方法。本章結尾還將提供一個用戶注冊的實例來幫助讀者掌握數(shù)據(jù)驗證。數(shù)據(jù)格式化是對某些特殊的數(shù)據(jù)的格式進行規(guī)范。例如,日期格式有很多種,可以為“1990-1-2”、“2/1/1990”等。有時數(shù)據(jù)格式化是必須的,如貨幣的格式要統(tǒng)一。01二月202346Flex數(shù)據(jù)綁定控件在呈現(xiàn)單個數(shù)據(jù)的時候,可以使用文本控件,在呈現(xiàn)多條數(shù)據(jù)的時候,F(xiàn)lex中就已經(jīng)提供了呈現(xiàn)多條數(shù)據(jù)的各種數(shù)據(jù)綁定控件。數(shù)據(jù)列表橫向數(shù)據(jù)列表交叉數(shù)據(jù)列表下拉列表數(shù)據(jù)網(wǎng)格樹列表01二月202347Flex圖表設計對于普通用戶來說,在圖表中展示數(shù)據(jù)看起來更直觀有效。相比較使用簡單的二維表格來說,圖表中的數(shù)據(jù)可以是各種形狀和顏色。圖表組件概述圖表類型格式化圖表使用事件和效果圖表主要就是由一個或幾個數(shù)據(jù)序列構成。在Flex中提供了豐富的圖表組件,通過這些組件可以創(chuàng)建各種二維的數(shù)據(jù)序列圖表。01二月202348關于數(shù)據(jù)圖表數(shù)據(jù)圖表的形式可以使得數(shù)據(jù)和數(shù)據(jù)關系很容易以圖形的方式呈現(xiàn)出來。圖表是一個使用二維關系數(shù)據(jù)的呈現(xiàn)類型。在Flex中,提供了很多常用的二維數(shù)據(jù)關系圖表形式的組件,如條型、圓柱型、圓餅等,使用這些組件可以方便的創(chuàng)建一個二維圖表。一個簡單的圖表就是一個數(shù)據(jù)序列,序列就是一組關聯(lián)的數(shù)據(jù)點。如一個數(shù)據(jù)序列可以是某個公司的月銷售情況或者是一段時間某個股票的價格情況等,這些都可以看作一個一個數(shù)據(jù)序列。圖9.1就是一個圖表,該圖表是一個某公司前三個月利潤和費用的數(shù)據(jù)序列。01二月202349使用圖表控件Flex中提供的圖表控件可以創(chuàng)建大部分日常需要的圖表類型,也可以根據(jù)需要自定義圖表。圖表控件位于包importmx.charts.*內,這些圖表類型的具體應用會在9.2節(jié)中詳細介紹。一個圖表類型對應一個圖表控件類和一個圖表序列類。其對應關系見表9.1所示。圖表類型圖表控件類圖表序列類AreaAreaChartAreaSeriesBarBarChartBarSeriesBubbleBubbleChartBubbleSeriesCandlestickCandlestickChartCandlestickSeriesColumnColumnChartColumnSeriesHighLowOpenCloseHLOCChartHLOCSeriesLineLineChartLineSeriesPiePieChartPieSeriesPlotPlotChartPlotSeries01二月202350Flex數(shù)據(jù)傳輸與交互數(shù)據(jù)具有流動性數(shù)據(jù)傳輸是指根據(jù)用戶控制傳遞至指定目的地。數(shù)據(jù)交互是指Flex與其他程序進行數(shù)據(jù)交換,包括傳遞數(shù)據(jù)給其他程序和接收其他程序返回的數(shù)據(jù)。01二月202351Flex數(shù)據(jù)傳輸?shù)姆绞紽lex4.0中的數(shù)據(jù)傳輸方式包括內部數(shù)據(jù)傳輸、文件流方式傳輸、XML方式傳輸、其他方式傳輸。應用程序內部的數(shù)據(jù)傳輸大多通過變量傳遞來實現(xiàn)。外部文件的數(shù)據(jù)可分為簡單文本數(shù)據(jù)、XML數(shù)據(jù)和復雜數(shù)據(jù)。對于簡單的文本數(shù)據(jù)可采用文件流方式傳輸。對于XML數(shù)據(jù)可采用XML方式傳輸。對于復雜的數(shù)據(jù),需要通過其他程序來輔助數(shù)據(jù)傳輸。01二月202352Flex應用的構建形式盡管用Flex開發(fā)RIA有多種形式,但現(xiàn)在主流的架構是:Flex作為Client(客戶端),Java、PHP、Asp、Ruby等技術作為Server(服務器端)。01二月202353Flex訪問服務器端數(shù)據(jù)的3種方式既然Flex可以和Java等Sever端技術整合,那么它們之間怎樣實現(xiàn)通信的呢?Flex通過HTTPService,WebService和RemoteObject這3個組件實現(xiàn)與Server端的通信。HTTPService組件

HTTPService組件允許你與HTTP服務交互,可以是接收HTTP請求和發(fā)送HTTP響應的任何HTTPURI。

你可以通過HTTPService組件調用任何類型的Server端技術,包括PHPpages,ColdFusionPages,JavaServerPages,Javaservlets,RubyonRails和ASPpages。

HTTPService組件允許你發(fā)送HTTPGET、POST、HEAD、OPTIONS、PUT、TRACE和DELETE請求,并典型的以XML形式返回。WebService組件

WebService組件允許你訪問WEB服務。RemoteObject組件(最靈活、最常用的方式)

RemoteObject組件允許你訪問Server端對象的方法,例如ColdFusioncomponents(CFCs),Javaobjects,PHPobjects和.NETobjects,并且不需要把對象配置為WEB服務。

但這種方式與其他2種方式不同,它需要中間件(下一節(jié)要講的內容),此時應用和Server端對象之間通過AMF(ActionMessageFormat)二進制形式傳遞數(shù)據(jù)。01二月202354中間件是什么?為什么需要中間件?Flex通過HTTPService,WebService和RemoteObject三個組件與Server端技術通信,并且如果用RemoteObject那么應用和Server端對象之間通過AMF二進制形式傳遞數(shù)據(jù)。因此就需要額外的軟件實現(xiàn)AMF協(xié)議,這樣的軟件就是我們所說的中間件。根據(jù)不同的Server端技術你需要選擇不同的中間件。中間件類型PHP中間件ZendFramework(開源,免費)中的Zend_AmfAMFPHP(開源,免費)SabreAMF(開源,免費)WebORBforPHP(開源,免費).NET中間件WebORBfor.NET(社區(qū)版免費,企業(yè)版收費)Rails中間件WebORBforRails(開源,免費)Java中間件WebORBforJava(社區(qū)版免費,企業(yè)版收費)AdobeLiveCycleDataServicesES2(收費)AdobeBlazeDS(開源,免費)對比AdobeLiveCycleDataServicesES2和AdobeBlazeDS01二月202355Flex通信框架AdobeLiveCycleDataServicesES2

是一款服務器軟件,它提供的重要數(shù)據(jù)服務使Flex應用程序能通過一個更快、更高效的操作模型與后端數(shù)據(jù)和業(yè)務邏輯交談。它支持消息傳遞、發(fā)布/訂閱和實時數(shù)據(jù)推送,為您最關鍵的應用程序提供了一個強大的解決方案。LiveCycleDataServices還支持與其他LiveCycle業(yè)務流程及文檔服務的無縫集成。BlazeDS

是一個免費的開放源項目,它提供LiveCycleDataServicesES2包含的許多功能,其中包括遠程處理和消息傳遞功能。借助開放源BlazeDS,您可以將Flex和AIR應用程序輕松連接到后端、分布式數(shù)據(jù)和Java?服務器基礎結構,從而提供部署在瀏覽器中或桌面上、靈敏、實時、由數(shù)據(jù)驅動的用戶體驗。01二月202356BlazeDSBlazeDS是一個基于服務器的Java遠程控制(remoting)和Web消息傳遞(messaging)技術,它能夠使得后端的Java應用程序和運行在瀏覽器上的AdobeFlex應用程序相互通信。BlazeDS

是發(fā)布于LGPLv3許可下的開源,免費項目。在采用Java作為Server端技術的Flex構架中得到越來越多的應用。在之后的教程中也采用它作為中間件。01二月202357Flex遠程數(shù)據(jù)訪問Flex包含基于面向服務的體系結構(SOA)的數(shù)據(jù)訪問組件。這些組件通過遠程過程調用與PHP、AdobeColdFusion?和MicrosoftASP.NET等服務器環(huán)境交互,以將數(shù)據(jù)提供給應用程序并將數(shù)據(jù)發(fā)送到后端數(shù)據(jù)源。根據(jù)特定服務器端應用程序的接口類型,可以使用以下任一方法連接Flex應用程序:?通過HTTPService組件使用HTTPGET或POST?通過WebService組件使用與SOAP兼容的Web服務?通過RemoteObject組件使用AdobeActionMessageFormat(AMF)遠程服務也可以使用AdobeLiveCycle?DataServicesES(該產品是一種可提供高級數(shù)據(jù)服務功能的單獨產品)的應用程序。LiveCycleDataServicesES不僅可以為遠程過程調用(RPC)服務應用程序和高級安全性配置提供代理,還提供下列數(shù)據(jù)服務:數(shù)據(jù)管理服務用于創(chuàng)建使用分布式數(shù)據(jù)的應用程序,以及管理大型數(shù)據(jù)集合和嵌套數(shù)據(jù)關系(如一對一、一對多關系)。消息服務用于創(chuàng)建可與其它應用程序(包括Flex應用程序和Java消息服務(JMS)應用程序)互相收發(fā)消息的應用程序。01二月202358使用<mx:HTTPService>組件與HTTP程序交互<mx:HTTPService>組件可與所有的HTTP程序交互。例

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論