淺析Flex開發(fā)與部署步驟
在學(xué)習(xí)Flex的過程中,F(xiàn)lex開發(fā)與部署模型是非常重要的知識(shí),要進(jìn)行Flex開發(fā)并部署這個(gè)應(yīng)用,一般要經(jīng)過兩個(gè)步驟。首先讓我們來看一下Flex的概念。
Flex語(yǔ)言簡(jiǎn)介
由于標(biāo)記語(yǔ)言和面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言廣泛應(yīng)用,因此,基于這兩項(xiàng)技術(shù)的Flex語(yǔ)言也將從中獲益。標(biāo)記語(yǔ)言是成功的,排布用戶界面也相對(duì)容易。MXML,由Flex引入的、基于XML的標(biāo)記語(yǔ)言,將延續(xù)其成功。和HTML很象,你可以用MXML來排布應(yīng)用的用戶界面。同為基于XML的標(biāo)記語(yǔ)言,MXML比HTML有更強(qiáng)的結(jié)構(gòu),更少的語(yǔ)法歧義。比起HTML,MXML還引入了更豐富的標(biāo)簽集。如:DataGrid,Tree,TabNavigator,Accordion和Menu,這些都是標(biāo)準(zhǔn)標(biāo)簽集中的一部分。你還可以擴(kuò)展MXML標(biāo)簽,創(chuàng)建自己的組件。此外,二者最大的區(qū)別是,MXML定義的用戶界面是用Flash播放器運(yùn)行的,相對(duì)傳統(tǒng)的基于HTML、頁(yè)面為中心的web應(yīng)用而言,這將更具吸引力。
除了排布可視組件,還可以用MXML來定義應(yīng)用中其他重要方面,如,可以把應(yīng)用定義為一個(gè)web服務(wù)的客戶,或是在應(yīng)用中開發(fā)動(dòng)畫,用于提示用戶進(jìn)度。
但是,標(biāo)記語(yǔ)言提供的編程邏輯仍難以滿足用戶交互的需求。在Flex開發(fā)中,可以用ActionScript編程語(yǔ)言來編寫事件監(jiān)聽器來滿足此種需求。ActionScript是一種基于ECMA-262標(biāo)準(zhǔn)的、強(qiáng)類型的面向?qū)ο笳Z(yǔ)言,和其他編程語(yǔ)言——java和C#很相似,因此也很易于上手。
總而言之,當(dāng)編寫一個(gè)Flex的應(yīng)用時(shí),需要用MXML來設(shè)置用戶界面,并用ActionScript來編寫響應(yīng)用戶交互的邏輯。
作為一個(gè)開發(fā)者,你可以根據(jù)自己的喜好,用自己所熟悉的IDE(比如Eclipes或Intellij)手工編寫MXML,也可以使用Flex支持的“所見即所得”開發(fā)環(huán)境(目前開發(fā)代號(hào)為Brady)。即使你選擇手工編寫MXML,仍可使用Flex提供的XMLschema,在IDE中為你提供代碼提示(codehinting)和代碼自動(dòng)填充(codecompletion)的功能.
下面例子是一個(gè)名為HelloWord.mxml的簡(jiǎn)單Flex應(yīng)用的源代碼。該應(yīng)用程序有兩個(gè)TextInput組件,當(dāng)點(diǎn)擊Copy時(shí),sourceTextInput的內(nèi)容就會(huì)顯示在destinationTextInput域中。以下例子顯示如何用MXML和ActionScript來創(chuàng)建應(yīng)用:用MXML定義用戶界面,再用ActionScript為Button組件的事件監(jiān)聽器編寫拷貝邏輯。
Flex開發(fā)與部署模型
要進(jìn)行Flex開發(fā)并部署這個(gè)應(yīng)用,一般要經(jīng)過以下步驟:
1.用你熟悉的IDE或Flex的“所見即所得”開發(fā)工具編寫HelloWold.mxml文件。
2.把該文件部署到應(yīng)用服務(wù)器上。一般可以通過拷貝HelloWorld.mxml到某個(gè)web應(yīng)用的目錄下,或?qū)elloWorld.mxml作為應(yīng)用的一部分打包到WAR文件中去。
當(dāng)一個(gè)用戶首次請(qǐng)求HelloWorld.mxml的時(shí)候,服務(wù)器會(huì)將MXML代碼編譯為Flash字節(jié)碼(一個(gè)SWF文件)。然后服務(wù)器將產(chǎn)生的SWF文件發(fā)往客戶端,讓Flash播放器執(zhí)行。對(duì)同一個(gè)MXML文檔的并發(fā)請(qǐng)求,服務(wù)器將跳過編譯過程,直接返回相同的編譯結(jié)果。
如果你對(duì)JavaServerPages比較熟悉,就會(huì)發(fā)現(xiàn)它們的模型非常相似。就像JSPs被編譯為Java字節(jié)碼(servlets)一樣,MXML文件將被編譯為Flash字節(jié)碼。二者的主要不同在于:在Flex中,產(chǎn)生的字節(jié)碼是在客戶端執(zhí)行的,而由JSP產(chǎn)生的Java字節(jié)碼(servlet)是在服務(wù)器端執(zhí)行的。通過Flex,你可以將復(fù)雜客戶端應(yīng)用無(wú)縫的集成到已有的商業(yè)邏輯中。
【編輯推薦】


















