国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 編程設(shè)計(jì) > 正文

Macromedia Flex 標(biāo)記語(yǔ)言簡(jiǎn)介

2020-01-31 16:14:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
Macromedia Flex 標(biāo)記語(yǔ)言簡(jiǎn)介 
    Macromedia Flex(開發(fā)代號(hào)為Royale)是一個(gè)展現(xiàn)服務(wù)器,開發(fā)者可以用它來(lái)開發(fā)新一代的“復(fù)雜Internet應(yīng)用”(RIAs - Rich Internet Applications)。復(fù)雜Internet應(yīng)用融合了桌面應(yīng)用的可用性和web應(yīng)用的易于管理的優(yōu)點(diǎn)。

    Flex是一個(gè)在J2EE應(yīng)用服務(wù)器或servlet容器安裝的展現(xiàn)服務(wù)器。它擁有豐富的用戶界面組件、用于排布這些組件的基于XML的標(biāo)記語(yǔ)言,以及可以處理用戶交互的面向?qū)ο缶幊陶Z(yǔ)言。這些技術(shù)的給我們帶來(lái)的是:使用Flash播放器渲染復(fù)雜Internet應(yīng)用,使用工業(yè)標(biāo)準(zhǔn)和開發(fā)者熟悉的方式進(jìn)行開發(fā)。

    本文將專注于Flex語(yǔ)言的關(guān)鍵部分。

    為了運(yùn)行本文中提到的代碼,你可能需要加入Flex的Beta測(cè)試。Flex運(yùn)行于象Macromedia JRun, IBM Websphere, BEA WebLogic, or Apache Tomcat 這樣的J2EE應(yīng)用服務(wù)器之上。Flex未來(lái)將支持Microsoft .NET服務(wù)器。

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來(lái)排布應(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來(lái)定義應(yīng)用中其他重要方面,如,可以把應(yīng)用定義為一個(gè)web服務(wù)的客戶,或是在應(yīng)用中開發(fā)動(dòng)畫,用于提示用戶進(jìn)度。

    但是,標(biāo)記語(yǔ)言提供的編程邏輯仍難以滿足用戶交互的需求。在Flex中,可以用ActionScript編程語(yǔ)言來(lái)編寫事件監(jiān)聽器來(lái)滿足此種需求。ActionScript是一種基于ECMA-262標(biāo)準(zhǔn)的、強(qiáng)類型的面向?qū)ο笳Z(yǔ)言,和其他編程語(yǔ)言――java和C#很相似,因此也很易于上手。

    總而言之,當(dāng)編寫一個(gè)Flex的應(yīng)用時(shí),需要用MXML來(lái)設(shè)置用戶界面,并用ActionScript來(lái)編寫響應(yīng)用戶交互的邏輯。

    作為一個(gè)開發(fā)者,你可以根據(jù)自己的喜好,用自己所熟悉的IDE(比如Eclipes或Intellij)手工編寫MXML,也可以使用Flex支持的“所見即所得”開發(fā)環(huán)境(目前開發(fā)代號(hào)為Brady)。即使你選擇手工編寫MXML,仍可使用Flex提供的XML schema,在IDE中為你提供代碼提示(code hinting)和代碼自動(dòng)填充(code completion)的功能.

    下面例子是一個(gè)名為HelloWord.mxml的簡(jiǎn)單Flex應(yīng)用的源代碼。該應(yīng)用程序有兩個(gè)TextInput組件,當(dāng)點(diǎn)擊Copy時(shí),source TextInput的內(nèi)容就會(huì)顯示在destination TextInput域中。以下例子顯示如何用MXML和ActionScript來(lái)創(chuàng)建應(yīng)用:用MXML定義用戶界面,再用ActionScript為Button組件的事件監(jiān)聽器編寫拷貝邏輯。

<?xml version=“1.0“ encoding=“iso-8859-1“?>
<mx:Application xmlns:mx=“http://www.macromedia.com/2003/mxml“>
<mx:TextInput id=“source“ width=“100“/>
<mx:Button label=“Copy“ click=“destination.text=source.text“/>
<mx:TextInput id=“destination“ width=“100“/>
</mx:Application>

Flex開發(fā)與部署模型

    要開發(fā)并部署這個(gè)應(yīng)用,一般要經(jīng)過(guò)以下步驟:

    1. 用你熟悉的IDE或Flex的“所見即所得”開發(fā)工具編寫HelloWold.mxml文件。

    2. 把該文件部署到應(yīng)用服務(wù)器上。一般可以通過(guò)拷貝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ù)器將跳過(guò)編譯過(guò)程,直接返回相同的編譯結(jié)果。

    如果你對(duì)JavaServer Pages比較熟悉,就會(huì)發(fā)現(xiàn)它們的模型非常相似。就像JSPs被編譯為Java字節(jié)碼(servlets)一樣,MXML文件將被編譯為Flash字節(jié)碼。二者的主要不同在于:在Flex中,產(chǎn)生的字節(jié)碼是在客戶端執(zhí)行的,而由JSP產(chǎn)生的Java字節(jié)碼(servlet)是在服務(wù)器端執(zhí)行的。通過(guò)Flex,你可以將復(fù)雜客戶端應(yīng)用無(wú)縫的集成到已有的商業(yè)邏輯中。

使用MXML用戶界面組件

    擁有豐富的用戶組件是Flex的一大特色。除了傳統(tǒng)的數(shù)據(jù)輸入控件(Text InputTextArea,CheckBox,RadioButton,ComboBox等等),MXML還包括了一些高級(jí)組件,用于維護(hù)結(jié)構(gòu)化數(shù)據(jù)(Tree 組件)和大數(shù)據(jù)集(DataGrid 組件)。為了清晰的組織數(shù)據(jù)及其處理過(guò)程,F(xiàn)lex還提供了導(dǎo)航組件(Tab,ViewStack,Accordion等等)。

    為了更易于組織用戶界面,F(xiàn)lex容器還定義了布局管理策略,用于指明一個(gè)組件相對(duì)與另一個(gè)組件的位置。Flex組件庫(kù)提供了大量的、可實(shí)現(xiàn)不同布局策略的容器。比如,在HBox中的組件將被水平排列,而在VBox中的組件會(huì)被垂直排列,而在Grid中組件將以行列的方式進(jìn)行排列,就象HTML的table一樣。View容器中沒(méi)有定義任何布局管理策略,因此你可以用x,y坐標(biāo)來(lái)指定組件的位置。

    下面給出一個(gè)在Flex環(huán)境下、具有三個(gè)面板的傳統(tǒng)e-mail界面。HBox容器中的Tree是水平排列的,而VBox容器中的DataGrid和TextArea則是垂直排列的。

<?xml version=“1.0“ encoding=“iso-8859-1“?>
<mx:Application xmlns:mx=“http://www.macromedia.com/2003/mxml“>
<mx:HBox>
<mx:Tree/>
<mx:VBox>
<mx:DataGrid/>
<mx:TextArea/>
</mx:VBox>
</mx:HBox>
</mx:Application>

編寫ActionScript代碼

    Flex語(yǔ)言是事件驅(qū)動(dòng)的。MXML將事件作為標(biāo)簽的屬性,你可以為它編寫事件監(jiān)聽器。比如,Button組件有一個(gè)click屬性,ComboBox,List和Tree組件有一個(gè)change屬性,等等。

    對(duì)于簡(jiǎn)單的交互,可以在標(biāo)簽的事件屬性上直接編寫ActionScript語(yǔ)句。例如,在HelloWorld應(yīng)用中,存在Button的click事件監(jiān)聽器中的ActionScripts語(yǔ)句,能把source TextInput 的內(nèi)容拷貝到destination TextInput中。

<?xml version=“1.0“ encoding=“iso-8859-1“?>
<mx:Application xmlns:mx=“http://www.macromedia.com/2003/mxml“>
<mx:TextInput id=“source“ width=“100“/>
<mx:Button label=“Copy“ click=“destination.text=source.text“/>
<mx:TextInput id=“destination“ width=“100“/>
</mx:Application>

    當(dāng)邏輯更為復(fù)雜的時(shí)候,可以定義獨(dú)立的ActionScript函數(shù),然后在組件的事件監(jiān)聽器中調(diào)用。例如,你可以象下面一樣,重寫HelloWorld應(yīng)用:

<?xml version=“1.0“ encoding=“iso-8859-1“?>
<mx:Application xmlns:mx=“http://www.macromedia.com/2003/mxml“>
<mx:script>
function copy() {
destination.text=source.text
}
</mx:script>
<mx:TextInput id=“source“ width=“100“/>
<mx:Button label=“Copy“ click=“copy()“/>
<mx:TextInput id=“destination“ width=“100“/>
</mx:Application>

    創(chuàng)建一個(gè)MXML文件,實(shí)際上是創(chuàng)建了一個(gè)類。定義在<mx:script>標(biāo)簽中的ActionScript函數(shù)是該類的方法。你可以在MXML文件或獨(dú)立的文件中定義ActionScript函數(shù)。選擇哪種方法,取決你所在的組織,后一種方法可以對(duì)開發(fā)團(tuán)隊(duì)進(jìn)行更好的分工。

定義自己的組件

    在Flex中,你可以從頭開始,或通過(guò)擴(kuò)展Flex組件庫(kù)中已有的組件,來(lái)創(chuàng)建自己的組件。創(chuàng)建組件就象創(chuàng)建一個(gè)應(yīng)用一樣:用MXML排布用戶界面,用ActionScript編寫用界面邏輯。

    下面的一個(gè)例子是,通過(guò)擴(kuò)展VBox類來(lái)創(chuàng)建簡(jiǎn)單的信用卡選擇組件。

<?xml version=“1.0“ encoding=“iso-8859-1“?>
<mx:VBox xmlns:mx=“http://www.macromedia.com/2003/mxml“>
<mx:RadioButton groupName=“card“ id=“americanExpress“
label=“American Express“ selected=“true“/>
<mx:RadioButton groupName=“card“ id=“masterCard“ label=“MasterCard“/>
<mx:RadioButton groupName=“card“ id=“visa“ label=“Visa“/>
</mx:VBox>
    組件的名字就是源文件的名字。如,源文件的名字是CreditCardChooser.mxml,組件的名字就是CreditCardChooser,這樣,這個(gè)標(biāo)簽名就可以用了。下面的例子就用上了剛才創(chuàng)建的CreditCardChoose組件。

<?xml version=“1.0“ encoding=“iso-8859-1“?>
<mx:Application xmlns:mx=“http://www.macromedia.com/2003/mxml“>
<mx:Label text=“Select a credit card:“/>
<CreditCardChooser/>
</mx:Application>

    界面開發(fā)者還能在Macromedia Flash開發(fā)環(huán)境中創(chuàng)建復(fù)雜的可視化組件,并存為SWC文件。

    當(dāng)然,也可以只用ActionScript定義來(lái)整個(gè)組件,這種方法一般用于定義應(yīng)用中的非可視組件。你可能會(huì)為這樣商業(yè)對(duì)象創(chuàng)建非可視組件――例如,包含客戶端邏輯的購(gòu)物車,或是應(yīng)用中helper類

數(shù)據(jù)訪問(wèn)

    Macromedia Flex為面向服務(wù)器架構(gòu)(SOA  主站蜘蛛池模板: 临江市| 蕉岭县| 察雅县| 木兰县| 中方县| 岗巴县| 边坝县| 集安市| 凤台县| 玉林市| 乡城县| 遵化市| 墨竹工卡县| 保康县| 威远县| 濮阳市| 宜昌市| 唐河县| 丁青县| 农安县| 伊金霍洛旗| 个旧市| 安庆市| 都兰县| 古交市| 铁岭市| 丰顺县| 五家渠市| 三门峡市| 顺平县| 垦利县| 石林| 绥滨县| 白河县| 无极县| 斗六市| 晋宁县| 九龙坡区| 大丰市| 丰原市| 宝鸡市|