版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Flex技術(shù)基礎(chǔ)培訓(xùn)二零壹二年01二月20232Flex簡介Flex通常是指AdobeFlex,是最初由Macromedia公司在2004年3月發(fā)布的,基于其專有的MacromediaFlash平臺(tái),它是涵蓋了支持RIA(RichInternetApplications)的開發(fā)和部署的一系列技術(shù)組合。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公司近兩年推出的重量級(jí)產(chǎn)品與技術(shù)。Flex的出現(xiàn)就是為了高效地開發(fā)和部署富互聯(lián)網(wǎng)應(yīng)用程序。Flex是Adobe公司推出的一系列工具和技術(shù),使開發(fā)人員可以開發(fā)和部署可升級(jí)的富互聯(lián)網(wǎng)應(yīng)用程序(RIAs)。富互聯(lián)網(wǎng)應(yīng)用程序(RIAs)是指像使用Web一樣的簡單方式來部署富客戶端程序。這種程序具有比HTML更加健壯、反應(yīng)更加靈敏和互動(dòng)性更豐富的特點(diǎn)。01二月20234Flex概述Flex提供了一種現(xiàn)代的、基于標(biāo)準(zhǔn)的語言來支持公共模板設(shè)計(jì)、客戶端運(yùn)行環(huán)境、編程模型、開發(fā)模型和高級(jí)數(shù)據(jù)服務(wù)。Flex采取了開源的策略,所以開發(fā)者可以在Flex原代碼的基礎(chǔ)上修改。新版Flex4中的開發(fā)環(huán)境已經(jīng)更名為FlashBuilder,而不再是FlexBuilder系列。Flex采用事件驅(qū)動(dòng)機(jī)制,程序的執(zhí)行過程嚴(yán)格按照事件發(fā)生的時(shí)間順序執(zhí)行。本節(jié)將介紹為讀者Flex開發(fā)技術(shù)的特點(diǎn)、優(yōu)點(diǎn)和新特性。01二月20235Flex是什么?Flex是一種創(chuàng)建RIA(RichInternetApplications)快速有效的方法之一。RIA是一種可能代替?zhèn)鹘y(tǒng)HTML應(yīng)用系統(tǒng)的解決方案。RIA技術(shù)既可以像Web一樣很簡單的部署用戶客戶端程序,同時(shí)交互性和表現(xiàn)力等方面也大大超過了傳統(tǒng)Web應(yīng)用系統(tǒng)。FlexBuilderFlexSDKMxmlActionScriptFlex01二月20236RIA出現(xiàn)的背景在RIA出現(xiàn)之前,軟件開發(fā)都是基于C/S(Client/Server)或B/S(Browser/Server)架構(gòu),但兩者各有缺點(diǎn)。C/S的主要缺點(diǎn):開發(fā)、部署成本高
傳統(tǒng)B/S結(jié)構(gòu)的軟件需要針對(duì)不同OS開發(fā)對(duì)應(yīng)的版本,且軟件更新?lián)Q代的速度越來越快自然成本會(huì)很高。維護(hù)成本高
服務(wù)器和客戶端都需要維護(hù)管理,工作量較大且技術(shù)支持復(fù)雜。B/S的主要缺點(diǎn):受限于HTML技術(shù),很難像C/S那樣產(chǎn)生豐富,個(gè)性的客戶端界面;存在瀏覽器兼容性差問題;Server端負(fù)荷較重,響應(yīng)速度慢;
絕大多數(shù)處理都集中在Server端,并且每次響應(yīng)都要刷新頁面(利用Ajax技術(shù)會(huì)有所緩解)。隨著軟件的飛速發(fā)展,此時(shí)需要出現(xiàn)一種能夠摒棄上訴缺點(diǎn)的新的技術(shù)形式–RIA出現(xiàn)了。01二月20237目前比較流行的RIA技術(shù)Adobe的
Flex微軟的
SilverlightSun的
JavaFX01二月20238客戶端技術(shù)JavaFXSilverlightFlash/FlexAJAXHTML5OpenLaszloMozillaXUL01二月20239Flex與其它RIA技術(shù)比較Flex是一種混合的技術(shù),這種語言技術(shù)的設(shè)計(jì)借鑒了其他優(yōu)秀的現(xiàn)代標(biāo)準(zhǔn)語言,如XML、JAVA等。其中,MXML就是基于XML構(gòu)建的描述界面的語言,同時(shí)借鑒了HTML等Web技術(shù)。而ActionScript也是大量的借鑒了JavaScript腳本和Java語言的語法組成。傳統(tǒng)的基于HTML的應(yīng)用程序部署成本低、結(jié)構(gòu)簡單、簡單易學(xué)。很多用戶和開發(fā)人員于是放棄了現(xiàn)代高性能計(jì)算機(jī)能帶來的用戶體驗(yàn),轉(zhuǎn)而追求數(shù)據(jù)的快速訪問,從而喪失了一些重要的UI功能。RIA利用相對(duì)健壯的客戶端描述引擎。RIA的另一個(gè)好處是:數(shù)據(jù)能夠被緩存在客戶端,從而可以實(shí)現(xiàn)一個(gè)比基于HTML的響應(yīng)速度更快且數(shù)據(jù)往返于服務(wù)器的次數(shù)更少的用戶界面。01二月202310FlexVSHTML/JavaScript/AjaxFlex技術(shù)是在Web技術(shù)發(fā)明之后開發(fā)出來的。Flex技術(shù)中的MXML語言就是基于XML,并且借鑒了HTML描述語言。所以,MXML和HTML的作用實(shí)質(zhì)上是一樣的,都是為了更好的描述界面布局和組件樣式。不同的是,MXML采用了更加先進(jìn)的設(shè)計(jì)模式,使得MXML代碼更容易閱讀和編寫。Flex中的ActionScript是一種腳本語言,用來處理客戶端的邏輯運(yùn)算。ActionScript的設(shè)計(jì)同樣也參照了JavaScript,與JavaScript作用一樣。并且,ActionScript和JavaScript兩者的語法也極其相似,這使得開發(fā)者學(xué)習(xí)新的ActionScript語言的門檻降低。01二月202311FlexVSJava/JavaFXFlex是一個(gè)類似于Java和JavaSwing的平臺(tái)。Flex中的腳本語言ActionScript與Java上的語法和結(jié)構(gòu)都極其相似。它繼承了Java中包的概念,在設(shè)計(jì)中,參照了Java的大部分特性。同F(xiàn)lex一樣,Java也可以把應(yīng)用程序部署到Web上運(yùn)行。但是編譯之后的文件卻遠(yuǎn)比Flex大,因?yàn)镴ava的運(yùn)行環(huán)境JRE和開發(fā)包JDK擁有比Flex多得多的類庫,而且這些類庫在客戶端可能不需要。所以,很多Java開發(fā)者開始了解并學(xué)習(xí)Flex,計(jì)劃把Flex和Java更好的結(jié)合起來01二月202312FlexVSSilverlight/XAMLSilverlight是微軟公司的富網(wǎng)絡(luò)應(yīng)用程序的解決方案。Silverlight的XAML描述語言同樣也是基于XML設(shè)計(jì)的。XAML就相當(dāng)于Flex中的MXML,兩者的功能一樣,而且語法也類似。Silverlight客戶端所使用的邏輯語言更加廣泛,因?yàn)樗腔?NET框架設(shè)計(jì)的。這些語言包括C#、JScript、VB等。不過Silverlight技術(shù)剛剛推出不久,其中的很多功能有待完善。而且,在客戶端需要安裝Silverlight控件。01二月20231301二月202314Flex技術(shù)特點(diǎn)1.增強(qiáng)用戶體驗(yàn)2.完善的開發(fā)環(huán)境3.通用的配置環(huán)境4.企業(yè)級(jí)的特征5.消除頁面加載6.標(biāo)準(zhǔn)的架構(gòu)7.與瀏覽器兼容持久層業(yè)務(wù)邏輯層頁面展現(xiàn)層FlexJsp01二月202315Flex基本架構(gòu)Flex的基本架構(gòu)包括4部分1.AdobeSDK2.AdobeFlexCharting3.AdobeFlexDataServices4.AdobeFlexBuilder01二月202316Flex基本架構(gòu)FlexChartingMXML、ActionScript3.0Flex框架及其類庫組件編譯器、調(diào)試器可擴(kuò)展圖形組件FlexDataServicesRPC服務(wù)消息服務(wù)數(shù)據(jù)管理服務(wù)FlashBuilder4FlexSDK401二月202317Flex和FlexSDK是什么?Flex是一個(gè)開源、免費(fèi)的框架,用于構(gòu)建在Adobe?Flash?Player或AdobeAIR?runtimes環(huán)境內(nèi)運(yùn)行的跨瀏覽器、桌面和操作系統(tǒng)的富網(wǎng)絡(luò)應(yīng)用。FlexSDK(FlexSoftwareDevelopmentKit)除了包括Flex框架以外還包括compilers(編譯器)和debugger(調(diào)試器)等開發(fā)工具。(這也意味著沒有FlashBuilder等IDE同樣可以開發(fā)Flex應(yīng)用,但效率會(huì)很低。)01二月202318Flex原理當(dāng)你編譯一個(gè)Flash程序時(shí),F(xiàn)lash開發(fā)環(huán)境把所有的可視化元素,時(shí)間軸指令和ActionScript中的業(yè)務(wù)邏輯編譯為SWF文件。同樣地,F(xiàn)lex程序中的MXML和ActionScript代碼首先全部被轉(zhuǎn)換為ActionScript然后編譯為SWF文件。當(dāng)你把SWF文件部署到服務(wù)器上時(shí),使用者可以從服務(wù)器獲取到這個(gè)程序。01二月202319Flex運(yùn)行機(jī)制Flex只是一種客戶端技術(shù),同時(shí)也屬于Flash平臺(tái)。Flex代碼最終被編譯成SWF文件運(yùn)行在Flash播放器(FlashPlayer)中。SWF文件可以單獨(dú)在用戶終端運(yùn)行,但是必須要安裝FlashPlayer。也可以在各種流行的瀏覽器中運(yùn)行,瀏覽器必須安裝FlashPlayer插件。SWF文件是一個(gè)壓縮文件,可以通過FlashPlayer呈現(xiàn)出來。由于SWF文件很小,所以有很快的網(wǎng)絡(luò)下載速度。用戶要想運(yùn)行一個(gè)Flex應(yīng)用程序,只需要通過網(wǎng)絡(luò)或者其他途徑獲取SWF文件,就可以運(yùn)行在裝有FlashPlayer插件的瀏覽器中。MXMLActionScriptSWF01二月202320Flex應(yīng)用程序的編譯和發(fā)布01二月202321Flex應(yīng)用的組成Flex框架容器組件、交互控件、數(shù)據(jù)綁定和事件等MXML一種標(biāo)記語言,F(xiàn)lex程序的主文件ActionScript實(shí)現(xiàn)Flex程序的動(dòng)態(tài)行為特性CSS通過設(shè)置組件屬性改變其外觀圖形資源數(shù)據(jù)01二月202322MXML基本語法MXML是遵循W3CXML標(biāo)準(zhǔn)的標(biāo)記語言。MXML中融合了眾多的標(biāo)準(zhǔn)。1.XML標(biāo)準(zhǔn) 2.DOMLevel3事件模型標(biāo)準(zhǔn)3.Web服務(wù)標(biāo)準(zhǔn) 4.Java標(biāo)準(zhǔn)5.HTTP標(biāo)準(zhǔn) 6.圖像標(biāo)準(zhǔn)7.CSS標(biāo)準(zhǔn)可以使用任何的文本編輯器編寫MXML。01二月202323MXML基礎(chǔ)MXML是XML的一種擴(kuò)展行語言,所以MXML繼承了XML的書寫規(guī)則。MXML的書寫規(guī)則如下。所有元素要有開始和結(jié)束標(biāo)記。如果一個(gè)標(biāo)記被打開,那么在對(duì)應(yīng)的地方應(yīng)該被關(guān)閉。計(jì)算機(jī)的邏輯是很嚴(yán)謹(jǐn)?shù)模绻硞€(gè)標(biāo)記只有開始沒有結(jié)束,系統(tǒng)就會(huì)發(fā)生錯(cuò)誤。區(qū)分大小寫。XML是區(qū)分大小寫的,所以MXML同樣也是。<book>和<Book>在XML中是不同的兩個(gè)元素標(biāo)記。<mx:Panel>和<mx:panel>當(dāng)然在MXML中也是不同的。需要聲明。在XML文檔的第一行通常都需要聲明版本和編碼等信息。MXML在Flex應(yīng)用中進(jìn)行界面組件的布局。MXML也可以定義Flex應(yīng)用的非可視部分訪問服務(wù)器端數(shù)據(jù)源界面組件與數(shù)據(jù)源之間的數(shù)據(jù)綁定01二月202324MXML文件結(jié)構(gòu)<?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="計(jì)算"x="42"/></s:Application>MXML應(yīng)用程序采用XML文件格式一個(gè)程序中只能出現(xiàn)一個(gè)s:Application節(jié)點(diǎn)將s定義為XML的命名空間使用s命名空間中定義組件Flex主程序文件由于要使用Flex組件,而Flex組件定義于“l(fā)ibrary:///flex/spark”命名空間中,所以要使用“xmlns:s="library:///flex/spark”的命令格式導(dǎo)入組件的命名空間,以此來使用組件。這種方法與JAVAWeb中使用自定義標(biāo)簽類似,在使用之前也必須通過taglib命令導(dǎo)入標(biāo)簽庫描述文件,即:
<%@tagliburi=”http://com.soft/tags”prefix=”s”%>,其中”xmlns”對(duì)應(yīng)于“taglib”命令;”http://com.soft/tags”對(duì)應(yīng)于“l(fā)ibrary:///flex/spark”命名空間;prefix=”s”對(duì)應(yīng)于xmlns:s后面的s,表示標(biāo)簽的使用前綴01二月202325Flex組件概述Flex應(yīng)用程序的界面通常由各種各樣的組件來構(gòu)建。例如,一個(gè)登錄框應(yīng)用程序包括了標(biāo)簽組件、輸入框組件、按鈕組件等。不同的組件有其特有的功能,如按鈕組件的單擊動(dòng)作和雙擊動(dòng)作。用戶可選擇不同的組件來滿足應(yīng)用程序的要求。Flex組件是指用MXML標(biāo)準(zhǔn)和ActionScript3.0代碼定義的一種可重用的控件,包括了屬性(Properties)、方法(Methods)、事件(Events)、樣式(Styles)。MXML是類似于XML的標(biāo)簽式語言。MXML文件的后綴后為“.mxml”。使用MXML標(biāo)準(zhǔn)定義的內(nèi)容可由MXML編譯器編譯成SWF文件。FlashBuilder4在編譯程序時(shí)就調(diào)用了MXML編譯器。Flex4中提供了許多基礎(chǔ)的Flex組件,如文本組件、按鈕組件、下拉框組件等。組件根據(jù)是否由Adobe公司提供,可分為基礎(chǔ)Flex組件和自定義組件。01二月202326MXML組件使用界面組件定制界面組件實(shí)現(xiàn)數(shù)據(jù)綁定使用CSS樣式單使用特效存儲(chǔ)驗(yàn)證數(shù)據(jù)格式化數(shù)據(jù)觸發(fā)事件01二月202327ActionScript概述ActionScript3.0是運(yùn)行于FlashPlayer運(yùn)行環(huán)境的編程語言,使用新的ActionScript虛擬機(jī)AVM2。AVM2使用新的二進(jìn)制指令集,并在性能上有很大改進(jìn)。同時(shí),ActionScript3.0使用面向?qū)ο竽P停瑪U(kuò)展和提高了應(yīng)用程序接口。ActionScript3.0代碼被FlexBuilder或Flash中的編譯器編譯成二進(jìn)制數(shù)據(jù)。這種二進(jìn)制數(shù)據(jù)被裝入SWF文件中,然后運(yùn)行于FlashPlayer運(yùn)行環(huán)境中。ECMAScriptJavaScriptActionScript都基于ECMAScript01二月202328ActionScript使用內(nèi)聯(lián)引用將ActionScript直接作為事件的屬性值級(jí)聯(lián)引用將ActionScript置于<fx:Script>塊中外聯(lián)引用通過<fx:Script>的source屬性引入獨(dú)立的.as文件01二月202329在MXML文件中直接編寫ActionScript在MXML文件中編寫ActionScript3.0代碼,只要在MXML文件下插入<fx:Script>標(biāo)簽。在MXML文件中的<mx:Script>標(biāo)簽下使用ActionScript3.0。在FlexBuilder3的編輯器中輸入標(biāo)簽會(huì)自動(dòng)封閉。例如,輸入“<mx:Script>”后,自動(dòng)生成封閉區(qū)域“<mx:Script><![CDATA[]]></mx:Script>”。01二月202330在AS文件中編寫ActionScriptActionScriptClass、ActionScriptFile和ActionScriptInterface都屬于AS文件。它們?nèi)叩奈募袷蕉紴锳S格式,不同的只是其中的定義有所區(qū)別。Flex應(yīng)用程序中最常使用的AS文件是ActionScriptClass,也就類的定義。用戶可使用ActionScriptClass創(chuàng)建向?qū)硗瓿蓜?chuàng)建。01二月202331在MXML中引用AS文件MXML文件中若要引用AS文件有兩種方式:一種是引用使用<fx:Script>標(biāo)簽中的“source”屬性。這種方式可看成是將MXML文件和AS文件分離,從而減小MXML文件的代碼,提高重用性。另外一種方法是引用ActionScriptClass(類)。使用這種方法的前提是AS文件中定義的是一個(gè)類。01二月202332ActionScript3.0語法基礎(chǔ)ActionScript
3.0是一種運(yùn)行在FlashPlayer的編程語言,是由ActionScript虛擬機(jī)(AVM)執(zhí)行的。ActionScript3.0版本提供了更好的面向?qū)ο笏枷氲脑O(shè)計(jì)模型,使程序員更容易編寫和設(shè)計(jì)復(fù)雜的代碼。ActionScript3.0是Flex中主要的編程語言,是學(xué)習(xí)Flex技術(shù)的基礎(chǔ)。變量和常量數(shù)據(jù)類型運(yùn)算符語句函數(shù)01二月202333Flex數(shù)據(jù)類型程序中使用的各種變量都應(yīng)預(yù)先加以定義,即先定義,后使用。對(duì)變量的定義可以包括三個(gè)方面:數(shù)據(jù)類型,存儲(chǔ)類型,作用域。數(shù)據(jù)類型表示了變量的性質(zhì)、表示形式、占據(jù)存儲(chǔ)空間等。在ActionScript3.0語言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型:其值不可以再分解為其他類型。復(fù)雜數(shù)據(jù)類型:復(fù)雜數(shù)據(jù)類型根據(jù)已定義的一個(gè)或多個(gè)數(shù)據(jù)類型定義。數(shù)據(jù)類型取值范圍缺省值Booleantrue/falsefalseint整數(shù),-2,147,483,648~2,147,483,647之間0Null僅包含一個(gè)null值nullNumber雙精度浮點(diǎn)類型NaNString字符類型nulluint非負(fù)整數(shù),0~2,147,483,647之間0undefined可以認(rèn)為是常量,即“undefined”undefined01二月202334Flex常量與變量對(duì)于基本數(shù)據(jù)類型量,按其取值是否可改變又分為常量和變量兩種。在程序執(zhí)行過程中,其值不發(fā)生改變的量稱為常量,其值可變的量稱為變量。常量和變量可與數(shù)據(jù)類型結(jié)合起來,如整型常量、整型變量、實(shí)型常量、實(shí)型變量、字符串常量、字符串變量。在程序中常量是可以不經(jīng)說明而直接引用的,而變量則必須先定義后使用。變量的數(shù)據(jù)類型是可以轉(zhuǎn)換的。轉(zhuǎn)換的方法有兩種,一種是自動(dòng)轉(zhuǎn)換,一種是強(qiáng)制轉(zhuǎn)換。01二月202335Flex運(yùn)算符和表達(dá)式ActionScript3.0語言中運(yùn)算符和表達(dá)式很多。豐富的運(yùn)算符和表達(dá)式使得ActionScript3.0語言功能強(qiáng)大。ActionScript3.0語言的運(yùn)算符不僅具有不同的優(yōu)先級(jí),而且還有一個(gè)特點(diǎn),就是它的結(jié)合性。在表達(dá)式中,各運(yùn)算量參與運(yùn)算的先后順序不僅要遵守運(yùn)算符優(yōu)先級(jí)別的規(guī)定,還要受運(yùn)算符結(jié)合性的制約:到底是自左向右進(jìn)行運(yùn)算還是自右向左進(jìn)行運(yùn)算。這種結(jié)合性增加了ActionScript3.0語言的復(fù)雜性。01二月202336ActionScript3.0運(yùn)算符簡介ActionScript3.0語言的運(yùn)算符可分為以下幾類:算術(shù)運(yùn)算符用于各類數(shù)值運(yùn)算,包括加“+”、減“-”、乘“*”、除“/”、求余“%”、自增“++”、自減“--”,共7種。關(guān)系運(yùn)算符用于比較運(yùn)算,包括大于“>”、小于“<”、等于“==”、大于等于“>=”、小于等于“<=”和不等于“!=”,共6種。邏輯運(yùn)算符用于邏輯運(yùn)算,包括與“&&”、或“||”、非“!”,共3種。位操作運(yùn)算符用于二進(jìn)制位運(yùn)算,包括位與“&”、位或“|”、位非“~”、位異或“^”、左移“<<”、右移“>>”,共6種。01二月202337ActionScript3.0運(yùn)算符簡介特殊運(yùn)算符,如括號(hào)“()”,下標(biāo)“[]”,取XML屬性“@”等。賦值運(yùn)算符用于賦值運(yùn)算,分為簡單賦值(=)、復(fù)合算術(shù)賦值(+=,-=,*=,/=,%=)和復(fù)合位運(yùn)算賦值(&=,|=,^=,>>=,<<=)3類,共11種。條件運(yùn)算符用于條件求值。運(yùn)算符為“?:”。逗號(hào)運(yùn)算符用于把若干表達(dá)式組合成一個(gè)表達(dá)式。運(yùn)算符為“,”。01二月202338Flex程序設(shè)計(jì)的基本結(jié)構(gòu)從程序流程的角度來看,程序可以分為三種基本結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。這3種基本結(jié)構(gòu)可以組成所有的各種復(fù)雜程序。程序設(shè)計(jì)的基本組成部分是語句,不同語句組成不同的程序結(jié)構(gòu)。例如,for語句、while語句組成循環(huán)結(jié)構(gòu)程序。順序結(jié)構(gòu)程序是指程序中的語句由表達(dá)式語句、函數(shù)調(diào)用語句、控制語句、復(fù)合語句、空語句或賦值語句構(gòu)成。順序結(jié)構(gòu)是程序中最基本的結(jié)構(gòu)之一,最大的特點(diǎn)是程序是以從上至下的順序執(zhí)行。01二月202339Flex程序設(shè)計(jì)的基本結(jié)構(gòu)分支結(jié)構(gòu)程序是指程序中存在分支的邏輯,需要分別處理各分支的邏輯。分支結(jié)構(gòu)程序常用的語句有:if語句、if…else語句、if…else…if語句、switch語句。分支結(jié)構(gòu)是程序中最基本的結(jié)構(gòu)之一,最大的特點(diǎn)是程序是分支處理。循環(huán)結(jié)構(gòu)是程序中一種很重要的結(jié)構(gòu)。其特點(diǎn)是:在給定條件成立時(shí),反復(fù)執(zhí)行某程序段,直到條件不成立為止。給定的條件稱為循環(huán)條件,反復(fù)執(zhí)行的程序段稱為循環(huán)體用goto語句和if語句構(gòu)成循環(huán)。while語句。do-while語句。for語句。01二月202340Flex函數(shù)函數(shù)是ActionScript3.0源程序的基本模塊,通過對(duì)函數(shù)模塊的調(diào)用實(shí)現(xiàn)特定的功能。ActionScript3.0語言不僅提供了極為豐富的庫函數(shù),還允許用戶建立自己定義的函數(shù)。用戶可把算法編成一個(gè)個(gè)相對(duì)獨(dú)立的函數(shù)模塊,然后通用調(diào)用來使用函數(shù)??梢哉fActionScript3.0程序的大部分工作都是由各式各樣的函數(shù)完成的。01二月202341Flex函數(shù)概述1.函數(shù)定義角度函數(shù)可分為庫函數(shù)和用戶定義函數(shù)。庫函數(shù)是指由ActionScript3.0定義的函數(shù)。用戶無須定義,只需在程序中直接使用函數(shù)。用戶定義函數(shù)是指由用戶按需要自定義的函數(shù)。2.函數(shù)返回值角度有返回值函數(shù):此類函數(shù)被調(diào)用執(zhí)行完后將向調(diào)用者返回一個(gè)執(zhí)行結(jié)果,稱為函數(shù)返回值。無返回值函數(shù):此類函數(shù)用于完成某項(xiàng)特定的處理任務(wù),執(zhí)行完成后不向調(diào)用者返回函數(shù)值。3.函數(shù)數(shù)據(jù)傳送角度無參函數(shù):函數(shù)定義、函數(shù)說明及函數(shù)調(diào)用中均不帶參數(shù)。有參函數(shù):也稱為帶參函數(shù)。在函數(shù)定義及函數(shù)說明時(shí)都有參數(shù),稱為形式參數(shù)(簡稱為形參)。01二月202342Flex事件和事件機(jī)制事件是在程序運(yùn)行中,觸發(fā)的一個(gè)響應(yīng)。在ActionScript3.0中,事件的處理得到了統(tǒng)一并且更符合標(biāo)準(zhǔn),統(tǒng)一用單一的事件處理模型,廢棄了之前版本的眾多的事件處理機(jī)制。本章將會(huì)詳細(xì)介紹ActionScript3.0中的新的單一的事件處理機(jī)制。事件是系統(tǒng)與用戶之間直接的交互方式。當(dāng)用戶向系統(tǒng)發(fā)出指令,就相應(yīng)的產(chǎn)生了一個(gè)事件,通過事件,用戶就可以與系統(tǒng)對(duì)話。例如,當(dāng)用戶單擊鼠標(biāo)的時(shí)候,就會(huì)產(chǎn)生一個(gè)鼠標(biāo)單擊的事件,系統(tǒng)就會(huì)根據(jù)用戶單擊的對(duì)象,來判斷用戶發(fā)出的指令。對(duì)象是保存數(shù)據(jù)的按鈕,用戶單擊之后,程序就會(huì)執(zhí)行保存數(shù)據(jù)的事件函數(shù)。在ActionScript3.0中,注冊(cè)事件的偵聽函數(shù)是通過addEventListener()方法的。通過這個(gè)方法,對(duì)象可以隨時(shí)偵聽事件的發(fā)生,然后觸發(fā)并執(zhí)行函數(shù)。事件的類型有幾種,其中常見的包括鼠標(biāo)事件、鍵盤事件、文本事件、加載進(jìn)度事件等等。01二月202343Flex動(dòng)畫效果在設(shè)計(jì)應(yīng)用程序模型時(shí),默認(rèn)的組件界面往往不能滿足用戶的要求。Flex4.0組件支持自定義界面。從廣義上講,美化界面不僅包括組件靜態(tài)外觀,也包括組件的動(dòng)態(tài)效果。自定義事件效果是指當(dāng)組件的一個(gè)事件被觸發(fā),且這個(gè)事件允許有效果,那么這個(gè)事件就可以應(yīng)用自定義的效果。在Flex里這種效果觸發(fā)器叫做“Behaviors”。組件中一般都有許多效果觸發(fā)器(Behaviors)。特定的組件都有其特殊的效果事件。Move,Resize,F(xiàn)ade,Zoom,Rotate01二月202344Flex用CSS美化界面CSS標(biāo)準(zhǔn)最早用于網(wǎng)頁開發(fā)中,使得程序和界面分離。Flex也支持使用CSS。CSS由于其簡單、方便的優(yōu)點(diǎn),逐漸成了Flex應(yīng)用程序美化界面的最重要方法。CSS是一種層疊樣式表,可以有效地對(duì)布局、字體、顏色、背景和其它效果進(jìn)行精確的控制。屬性名和屬性值之間以“:”符分隔。不同屬性名間以“;”符分隔。以下代碼定義了兩個(gè)樣式“.myFontStyle”、“.myButton”。一個(gè)常見的CSS定義包括樣式名、屬性、屬性值。對(duì)于特殊的需求,需要其他語法支持,如單位、規(guī)則等。下面將詳細(xì)介紹CSS語法。Flex4.0應(yīng)用程序中的CSS樣式都是使用<fx:Style>組件定義的。定義的方式有兩種:<fx:Style>組件內(nèi)部定義CSS,<fx:Style>組件調(diào)用外部CSS。01二月202345Flex數(shù)據(jù)處理數(shù)據(jù)是程序處理的主要對(duì)象。在應(yīng)用程序中最核心的部分也是數(shù)據(jù)處理。數(shù)據(jù)處理包括數(shù)據(jù)綁定、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)驗(yàn)證、數(shù)據(jù)格式化等內(nèi)容。數(shù)據(jù)綁定是指用戶可以將某個(gè)屬性與其他的屬性或變量相關(guān)聯(lián)。這樣,當(dāng)被綁定的屬性或變量發(fā)生改變時(shí),綁定項(xiàng)同時(shí)發(fā)生改變。數(shù)據(jù)綁定是Flex技術(shù)中一項(xiàng)非常有用的技術(shù),可以有效地減少程序代碼,提高運(yùn)行效率。數(shù)據(jù)存儲(chǔ)是指在編程過程中將數(shù)據(jù)以特定的形式存儲(chǔ)。簡單的數(shù)據(jù)模型可以用簡單的數(shù)據(jù)類型存儲(chǔ),如int型、String型、Array型。對(duì)于復(fù)雜的邏輯模型,需要將數(shù)據(jù)合理的存儲(chǔ)。Flex4.0提供了<fx:Model>、<fx:Object>、<fx:XML>3種存儲(chǔ)復(fù)雜的數(shù)據(jù)模型。數(shù)據(jù)驗(yàn)證是指應(yīng)用程序中對(duì)輸入的數(shù)據(jù)進(jìn)行某種方式的校驗(yàn)。本章將詳細(xì)介紹Flex4.0數(shù)據(jù)驗(yàn)證的基本方法和自定義方法。本章結(jié)尾還將提供一個(gè)用戶注冊(cè)的實(shí)例來幫助讀者掌握數(shù)據(jù)驗(yàn)證。數(shù)據(jù)格式化是對(duì)某些特殊的數(shù)據(jù)的格式進(jìn)行規(guī)范。例如,日期格式有很多種,可以為“1990-1-2”、“2/1/1990”等。有時(shí)數(shù)據(jù)格式化是必須的,如貨幣的格式要統(tǒng)一。01二月202346Flex數(shù)據(jù)綁定控件在呈現(xiàn)單個(gè)數(shù)據(jù)的時(shí)候,可以使用文本控件,在呈現(xiàn)多條數(shù)據(jù)的時(shí)候,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ì)對(duì)于普通用戶來說,在圖表中展示數(shù)據(jù)看起來更直觀有效。相比較使用簡單的二維表格來說,圖表中的數(shù)據(jù)可以是各種形狀和顏色。圖表組件概述圖表類型格式化圖表使用事件和效果圖表主要就是由一個(gè)或幾個(gè)數(shù)據(jù)序列構(gòu)成。在Flex中提供了豐富的圖表組件,通過這些組件可以創(chuàng)建各種二維的數(shù)據(jù)序列圖表。01二月202348關(guān)于數(shù)據(jù)圖表數(shù)據(jù)圖表的形式可以使得數(shù)據(jù)和數(shù)據(jù)關(guān)系很容易以圖形的方式呈現(xiàn)出來。圖表是一個(gè)使用二維關(guān)系數(shù)據(jù)的呈現(xiàn)類型。在Flex中,提供了很多常用的二維數(shù)據(jù)關(guān)系圖表形式的組件,如條型、圓柱型、圓餅等,使用這些組件可以方便的創(chuàng)建一個(gè)二維圖表。一個(gè)簡單的圖表就是一個(gè)數(shù)據(jù)序列,序列就是一組關(guān)聯(lián)的數(shù)據(jù)點(diǎn)。如一個(gè)數(shù)據(jù)序列可以是某個(gè)公司的月銷售情況或者是一段時(shí)間某個(gè)股票的價(jià)格情況等,這些都可以看作一個(gè)一個(gè)數(shù)據(jù)序列。圖9.1就是一個(gè)圖表,該圖表是一個(gè)某公司前三個(gè)月利潤和費(fèi)用的數(shù)據(jù)序列。01二月202349使用圖表控件Flex中提供的圖表控件可以創(chuàng)建大部分日常需要的圖表類型,也可以根據(jù)需要自定義圖表。圖表控件位于包importmx.charts.*內(nèi),這些圖表類型的具體應(yīng)用會(huì)在9.2節(jié)中詳細(xì)介紹。一個(gè)圖表類型對(duì)應(yīng)一個(gè)圖表控件類和一個(gè)圖表序列類。其對(duì)應(yīng)關(guān)系見表9.1所示。圖表類型圖表控件類圖表序列類AreaAreaChartAreaSeriesBarBarChartBarSeriesBubbleBubbleChartBubbleSeriesCandlestickCandlestickChartCandlestickSeriesColumnColumnChartColumnSeriesHighLowOpenCloseHLOCChartHLOCSeriesLineLineChartLineSeriesPiePieChartPieSeriesPlotPlotChartPlotSeries01二月202350Flex數(shù)據(jù)傳輸與交互數(shù)據(jù)具有流動(dòng)性數(shù)據(jù)傳輸是指根據(jù)用戶控制傳遞至指定目的地。數(shù)據(jù)交互是指Flex與其他程序進(jìn)行數(shù)據(jù)交換,包括傳遞數(shù)據(jù)給其他程序和接收其他程序返回的數(shù)據(jù)。01二月202351Flex數(shù)據(jù)傳輸?shù)姆绞紽lex4.0中的數(shù)據(jù)傳輸方式包括內(nèi)部數(shù)據(jù)傳輸、文件流方式傳輸、XML方式傳輸、其他方式傳輸。應(yīng)用程序內(nèi)部的數(shù)據(jù)傳輸大多通過變量傳遞來實(shí)現(xiàn)。外部文件的數(shù)據(jù)可分為簡單文本數(shù)據(jù)、XML數(shù)據(jù)和復(fù)雜數(shù)據(jù)。對(duì)于簡單的文本數(shù)據(jù)可采用文件流方式傳輸。對(duì)于XML數(shù)據(jù)可采用XML方式傳輸。對(duì)于復(fù)雜的數(shù)據(jù),需要通過其他程序來輔助數(shù)據(jù)傳輸。01二月202352Flex應(yīng)用的構(gòu)建形式盡管用Flex開發(fā)RIA有多種形式,但現(xiàn)在主流的架構(gòu)是:Flex作為Client(客戶端),Java、PHP、Asp、Ruby等技術(shù)作為Server(服務(wù)器端)。01二月202353Flex訪問服務(wù)器端數(shù)據(jù)的3種方式既然Flex可以和Java等Sever端技術(shù)整合,那么它們之間怎樣實(shí)現(xiàn)通信的呢?Flex通過HTTPService,WebService和RemoteObject這3個(gè)組件實(shí)現(xiàn)與Server端的通信。HTTPService組件
HTTPService組件允許你與HTTP服務(wù)交互,可以是接收HTTP請(qǐng)求和發(fā)送HTTP響應(yīng)的任何HTTPURI。
你可以通過HTTPService組件調(diào)用任何類型的Server端技術(shù),包括PHPpages,ColdFusionPages,JavaServerPages,Javaservlets,RubyonRails和ASPpages。
HTTPService組件允許你發(fā)送HTTPGET、POST、HEAD、OPTIONS、PUT、TRACE和DELETE請(qǐng)求,并典型的以XML形式返回。WebService組件
WebService組件允許你訪問WEB服務(wù)。RemoteObject組件(最靈活、最常用的方式)
RemoteObject組件允許你訪問Server端對(duì)象的方法,例如ColdFusioncomponents(CFCs),Javaobjects,PHPobjects和.NETobjects,并且不需要把對(duì)象配置為WEB服務(wù)。
但這種方式與其他2種方式不同,它需要中間件(下一節(jié)要講的內(nèi)容),此時(shí)應(yīng)用和Server端對(duì)象之間通過AMF(ActionMessageFormat)二進(jìn)制形式傳遞數(shù)據(jù)。01二月202354中間件是什么?為什么需要中間件?Flex通過HTTPService,WebService和RemoteObject三個(gè)組件與Server端技術(shù)通信,并且如果用RemoteObject那么應(yīng)用和Server端對(duì)象之間通過AMF二進(jìn)制形式傳遞數(shù)據(jù)。因此就需要額外的軟件實(shí)現(xiàn)AMF協(xié)議,這樣的軟件就是我們所說的中間件。根據(jù)不同的Server端技術(shù)你需要選擇不同的中間件。中間件類型PHP中間件ZendFramework(開源,免費(fèi))中的Zend_AmfAMFPHP(開源,免費(fèi))SabreAMF(開源,免費(fèi))WebORBforPHP(開源,免費(fèi)).NET中間件WebORBfor.NET(社區(qū)版免費(fèi),企業(yè)版收費(fèi))Rails中間件WebORBforRails(開源,免費(fèi))Java中間件WebORBforJava(社區(qū)版免費(fèi),企業(yè)版收費(fèi))AdobeLiveCycleDataServicesES2(收費(fèi))AdobeBlazeDS(開源,免費(fèi))對(duì)比AdobeLiveCycleDataServicesES2和AdobeBlazeDS01二月202355Flex通信框架AdobeLiveCycleDataServicesES2
是一款服務(wù)器軟件,它提供的重要數(shù)據(jù)服務(wù)使Flex應(yīng)用程序能通過一個(gè)更快、更高效的操作模型與后端數(shù)據(jù)和業(yè)務(wù)邏輯交談。它支持消息傳遞、發(fā)布/訂閱和實(shí)時(shí)數(shù)據(jù)推送,為您最關(guān)鍵的應(yīng)用程序提供了一個(gè)強(qiáng)大的解決方案。LiveCycleDataServices還支持與其他LiveCycle業(yè)務(wù)流程及文檔服務(wù)的無縫集成。BlazeDS
是一個(gè)免費(fèi)的開放源項(xiàng)目,它提供LiveCycleDataServicesES2包含的許多功能,其中包括遠(yuǎn)程處理和消息傳遞功能。借助開放源BlazeDS,您可以將Flex和AIR應(yīng)用程序輕松連接到后端、分布式數(shù)據(jù)和Java?服務(wù)器基礎(chǔ)結(jié)構(gòu),從而提供部署在瀏覽器中或桌面上、靈敏、實(shí)時(shí)、由數(shù)據(jù)驅(qū)動(dòng)的用戶體驗(yàn)。01二月202356BlazeDSBlazeDS是一個(gè)基于服務(wù)器的Java遠(yuǎn)程控制(remoting)和Web消息傳遞(messaging)技術(shù),它能夠使得后端的Java應(yīng)用程序和運(yùn)行在瀏覽器上的AdobeFlex應(yīng)用程序相互通信。BlazeDS
是發(fā)布于LGPLv3許可下的開源,免費(fèi)項(xiàng)目。在采用Java作為Server端技術(shù)的Flex構(gòu)架中得到越來越多的應(yīng)用。在之后的教程中也采用它作為中間件。01二月202357Flex遠(yuǎn)程數(shù)據(jù)訪問Flex包含基于面向服務(wù)的體系結(jié)構(gòu)(SOA)的數(shù)據(jù)訪問組件。這些組件通過遠(yuǎn)程過程調(diào)用與PHP、AdobeColdFusion?和MicrosoftASP.NET等服務(wù)器環(huán)境交互,以將數(shù)據(jù)提供給應(yīng)用程序并將數(shù)據(jù)發(fā)送到后端數(shù)據(jù)源。根據(jù)特定服務(wù)器端應(yīng)用程序的接口類型,可以使用以下任一方法連接Flex應(yīng)用程序:?通過HTTPService組件使用HTTPGET或POST?通過WebService組件使用與SOAP兼容的Web服務(wù)?通過RemoteObject組件使用AdobeActionMessageFormat(AMF)遠(yuǎn)程服務(wù)也可以使用AdobeLiveCycle?DataServicesES(該產(chǎn)品是一種可提供高級(jí)數(shù)據(jù)服務(wù)功能的單獨(dú)產(chǎn)品)的應(yīng)用程序。LiveCycleDataServicesES不僅可以為遠(yuǎn)程過程調(diào)用(RPC)服務(wù)應(yīng)用程序和高級(jí)安全性配置提供代理,還提供下列數(shù)據(jù)服務(wù):數(shù)據(jù)管理服務(wù)用于創(chuàng)建使用分布式數(shù)據(jù)的應(yīng)用程序,以及管理大型數(shù)據(jù)集合和嵌套數(shù)據(jù)關(guān)系(如一對(duì)一、一對(duì)多關(guān)系)。消息服務(wù)用于創(chuàng)建可與其它應(yīng)用程序(包括Flex應(yīng)用程序和Java消息服務(wù)(JMS)應(yīng)用程序)互相收發(fā)消息的應(yīng)用程序。01二月202358使用<mx:HTTPService>組件與HTTP程序交互<mx:HTTPService>組件可與所有的HTTP程序交互。例
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版教育信息化合理化建議書編制規(guī)范與指南3篇
- 2025版都市農(nóng)業(yè)空置土地租賃合同2篇
- 2025年度辦公家具采購及后期維護(hù)服務(wù)合同3篇
- 2025年正規(guī)個(gè)人借款合同樣本
- 2025年度水電工程綠色施工與環(huán)保達(dá)標(biāo)協(xié)議3篇
- 二零二五年度個(gè)人向公司借款協(xié)議包含借款用途及資金監(jiān)管3篇
- 2024廣告公司服務(wù)合同
- 2024年網(wǎng)絡(luò)服務(wù)提供商協(xié)議3篇
- 二零二五年度人工智能技術(shù)服務(wù)外包合同
- 2025年度戶外廣告用窗簾制作與租賃合同3篇
- 眼鏡制造業(yè)灌膠機(jī)市場前景與機(jī)遇分析
- 智慧審計(jì)平臺(tái)項(xiàng)目匯報(bào)
- 湖北省天門市2022-2023學(xué)年三年級(jí)上學(xué)期語文期末試卷(含答案)
- 《建筑賦比興》一些筆記和摘錄(上)
- 【服裝企業(yè)比音勒芬服飾的財(cái)務(wù)問題分析(基于杜邦分析)9700字論文】
- 電氣工程及其自動(dòng)化低壓電器中繼電器應(yīng)用
- 實(shí)驗(yàn)九(b)液體表面張力系數(shù)的測定(用毛細(xì)管法)
- 全球機(jī)場三字碼、四字碼
- 2023-2024學(xué)年重慶市兩江新區(qū)四上數(shù)學(xué)期末質(zhì)量檢測試題含答案
- 泌尿外科內(nèi)鏡診療技術(shù)質(zhì)量保障措施及應(yīng)急預(yù)案
- M7.5漿砌塊石擋土墻砌筑施工方法
評(píng)論
0/150
提交評(píng)論