成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

實例解析Flex應用

開發 后端
你對Flex應用的概念是否比較熟悉,本文通過實例向大家解析一下,在這個簡單的購物車中,我們顯示一個咖啡品牌的列表(類似于HTML的select)。

 本文和大家重點討論一下Flex應用,以購物車為例向大家解析,使用數據綁定功能在下面顯示當前選擇的品牌的說明,還有一個添加到購物車的按鈕,當按鈕被按下后,該品牌的咖啡便會被添加到購物列表中。

創建應用程序

在這個簡單的購物車中,我們顯示一個咖啡品牌的列表(類似于HTML的select)。使用數據綁定功能在下面顯示當前選擇的品牌的說明,還有一個添加到購物車的按鈕,當按鈕被按下后,該品牌的咖啡便會被添加到購物列表中。

圖1.教程創建的Flex應用程序

 

這個教程的目的是為了學習使用:

Application(應用程序)類
Panel(面板)容器
Script(腳本)元素
Array(數組)元素
Object(對象)元素
Label(標簽)元素
Text(文本框)元素
Button(按鈕)控件
ComboBox(下拉列表)控件
List(列表)控件
一個ActionScript函數


創建Application(應用程序)對象

任何一個Flex程序都是以XML聲明開始和Application標記的。Application標簽包含一個MX類庫命名空間的聲明:xmlns:mx="http://www.macromedia.com/2003/mxml"。引用該類庫的所有標簽必須以mx作為前綴。

1.創建一個新文件,然后保存為firstapp.mxml,位于flex_tutorials目錄下
2.在文件的開始處,插入XML聲明:
<?xmlversion="1.0"?>
3.在XML聲明后,添加帶命名空間的Application標簽:
 

  1. <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.macromedia.com/2003/mxml"> 
  2. </mx:Application> 

應用程序布局:添加一個面板

通常你可以將Flex應用程序中可見的組件放置于容器中,容器提供了綁定文本、控件、圖像和其他媒體類型的元素。在這里,你可以使用稱為“面板”(Panel)的容器,它可以提供大部分應用程序需要的全部外殼。你還可以使用面板的title(標題)屬性,修改面板上方自動包含著的標題欖的文字。

4.在Application標簽內部,添加一個Panel標簽,title屬性為"myFirstFlexApp"

  1. <mx:Paneltitlemx:Paneltitle="MyFirstFlexApp"> 
  2. </mx:Panel> 


◆添加一個顯示標題的Label元素

Label元素可以用來顯示單行文本。它有一些屬性,這里用到的是text(文本)屬性,定義Label顯示的內容。

5.在Panel標簽內,插入一個帶有文本屬性的Label標簽,如下:<mx:Labeltext="CoffeeBlends"/>

6.保存文件,預覽一下程序

◆添加一個定義咖啡品牌的數組對象

本程序的數據模型是一個簡單的數組(內容是一系列的對象),你可以直接在程序中用Array和Object元素創建。這里每個數組單元對象都有兩個屬性:label和data,你可以將這兩個屬性寫成對象的子標簽。用這兩個屬性名稱是為了提供給ComboBox和List這樣的控件元素使用,稍后我們會介紹。

這些控件元素可以使用更加復雜的數據對象,但是既然現在是手工創建數據模型,我們就使用簡單的形式。通常的語法是:

  1. <mx:Arrayidmx:Arrayid="identifier"> 
  2. <mx:Object> 
  3. <label>literalstring</label> 
  4. <data>anotherliteralstring</data> 
  5. </mx:Object> 
  6. </mx:Array> 


留意這里的ID屬性。ID幾乎是所有Flex元素都具備的屬性,它將元素“貼”上標志以區分其他元素。如果你要在數據綁定或ActionScript中使用這個元素,***給它指定一個ID。

不可見元素可以由你隨意擺放,但是把他們放到程序的首部--即可見元素的前面--是一個好習慣。

 

  1. <mx:Arrayidmx:Arrayid="coffeeArray"> 
  2. <mx:Object> 
  3. <label>RedSea</label> 
  4. <data>Smoothandfragrant</data> 
  5. </mx:Object> 
  6. <mx:Object> 
  7. <label>Andes</label> 
  8. <data>Richandpungent</data> 
  9. </mx:Object> 
  10. <mx:Object> 
  11. <label>BlueMountain</label> 
  12. <data>Delicateandrefined</data> 
  13. </mx:Object> 
  14. </mx:Array> 
  15.  

 ◆Flex應用之添加一個顯示咖啡品牌的ComboBox

Flex的ComboBox類似于HTML的select功能,而且更加強大。需顯示的數組由dataProvider屬性指定。你可以在dataProvider標簽中直接創建數組,但是更為常用的方法是在別處創建或導入一個數組,然后在dataProvider處指定:

  1. <mx:ComboBoxidmx:ComboBoxid="myCombo"dataProvider="{myArray}"/> 

這里的大括號告訴編譯器:里面是一個變量或者代求算的變量,而不是字符串。

如果對象包含label和data屬性,他們會自動按顯示數據(label)和關聯數據(data)區分,data可以是簡單的值,也可以是復雜的類型(如對象)。如果對象既沒有label屬性也沒有data屬性,那么整個對象將作為data屬性,而label屬性則為由ComboBox的labelField屬性指定的對象屬性。例如ComboBox的labelField值為"name",那么label的值就為對象的name屬性。

8.在Label之后添加一個ComboBox,id取為coffeeComb,使用dataProvider屬性將CombBox綁定到上一步創建的coffeeArray數組:

  1. <mx:ComboBoxidmx:ComboBoxid="coffeeCombo"dataProvider="{coffeeArray}"/> 


◆Flex應用之添加一個顯示說明的Text(文本)控件

Text控件與Label相似,不同的是它可以顯示多行數據。這里我們用它來顯示ComboBox中選中的咖啡品牌的說明。這里要用到ComboBox中選擇的項目的data屬性。

9.在ComboBox之后,添加一個帶有text屬性的文本控件,將text屬性設置為“Description:”然后加上一個到ComboBox選擇項目的data屬性的綁定:

 

  1. <mx:Texttextmx:Texttext="Description:{coffeeCombo.selectedItem.data}"/> 

◆添加一個增加咖啡品牌到購物欄的按鈕

Button控件很簡單。它有一個label的屬性來設置顯示的文字,還有一個click事件,用來指定鼠標點擊事件的處理動作。

在這里,我們添加一個按鈕,通過調用一個addToCart函數,把ComboBox中選擇的項目添加到購物欄中。我們將在后面創建這個函數。

10.添加一個顯示“AddtoCart”的按鈕,被點擊后調用addToCart函數:

<mx:Buttonlabel="AddtoCart"click="addToCart()"/>
給購物車添加一個List(列表)控件

List控件和ComboBox唯一的區別是它能同時顯示和選擇多條項目。這里用的List不需要指定dataProvider屬性了,因為它在用戶添加數據前是空的。

11.在按鈕之后,添加一個List控件,id取為cart:

<mx:Listid="cart"/>

◆Flex應用之添加一段處理按鈕點擊事件的腳本

教程的***一步是添加一段ActionScript腳本,用來處理按鈕的點擊事件。在這個簡單的應用程序中,我們在Script標簽中添加腳本。

Script標簽中的ActionScript代碼將被包含在<![CDATA[]]>里面,這個標志里面的內容不被XML解析器解析。這個是標準的XML用法,在這里是為了保護ActionScript的一些可能會被XML解析器誤處理的一些字符(如<等),實際上這樣不僅保護了這些字符,也省去了XML解析器解析ActionScript內容。

這里用到的ActionScript語法很簡單,函數的通常語法是:

function函數名(參數1:數據類型...):返回數據類型
{
[ActionScript語句]
}
在addToCart函數中,使用List類的addItem方法添加項目。該方法需要有label參數和data參數,這些參數正好是ComboBox中選中的項目的label屬性和data屬性。

12.在Array標簽之后,插入一個帶有CDATA包裝的Script標簽:

  1. <mx:Script> 
  2. <![CDATA[]]> 
  3. </mx:Script> 

13.在CDATA里面,添加一個名為addToCart不返回任何值的函數: 

  1. functionaddToCart():Void  
  2. {  
  3. }  
  4.  

 14.在函數體內部,使用List類的addItem方法將ComboBox中所選項目label屬性和data屬性添加到List上。

cart.addItem(coffeeCombo.selectedItem.label,coffeeCombo.selectedItem.data);
15.保存文件,在瀏覽器中預覽應用程序(查看瀏覽MXML文件的方法見***頁)

firstapp.mxml完整的代碼: 

  1. <?xmlversionxmlversion="1.0"?> 
  2. <mx:Applicationxmlns:mxmx:Applicationxmlns:mx="http://www.macromedia.com/2003/mxml"> 
  3. <!--datamodel--> 
  4. <mx:Arrayidmx:Arrayid="coffeeArray"> 
  5. <mx:Object> 
  6. <label>RedSea</label> 
  7. <data>Smoothandfragrant</data> 
  8. </mx:Object> 
  9. <mx:Object> 
  10. <label>Andes</label> 
  11. <data>Richandpungent</data> 
  12. </mx:Object> 
  13. <mx:Object> 
  14. <label>BlueMountain</label> 
  15. <data>Delicateandrefined</data> 
  16. </mx:Object> 
  17. </mx:Array> 
  18. <mx:Script> 
  19. <![CDATA[  
  20. functionaddToCart():Void  
  21. {  
  22. cart.addItem(coffeeCombo.selectedItem.label,coffeeCombo.selectedItem.data);  
  23. }  
  24. ]]> 
  25. </mx:Script> 
  26. <!--view--> 
  27. <mx:Paneltitlemx:Paneltitle="MyFirstFlexApp"> 
  28. <mx:Labeltextmx:Labeltext="CoffeeBlends"/> 
  29. <mx:ComboBoxidmx:ComboBoxid="coffeeCombo"dataProvider="{coffeeArray}"/> 
  30. <mx:Texttextmx:Texttext="Description:{coffeeCombo.selectedItem.data}"/> 
  31. <mx:Buttonlabelmx:Buttonlabel="AddtoCart"click="addToCart()"/> 
  32. <mx:Listidmx:Listid="cart"/> 
  33. </mx:Panel> 
  34. </mx:Application> 
  35.  

 進一步學習

在這個簡單的例子中,我們學習了Flex的一些核心元素:容器、控件、數據模型、數據綁定和事件處理。
 

【編輯推薦】

  1. 解析***個Flex應用——HelloFlex!
  2. 構建Flex應用時常見幾大誤區解析
  3. 解析Flex應用開發步驟和技術框架
  4. 解析Flex全屏模式設置方法
  5. Flex內存泄露解決方法和內存釋放優化原則

 

 

責任編輯:佚名 來源: blueidea.com
相關推薦

2010-07-29 10:40:12

2010-08-09 15:52:28

2010-08-04 15:12:54

Flex開發

2010-07-27 10:58:46

Flex

2010-07-30 14:32:50

Flex應用

2010-07-30 14:58:06

Flex應用

2010-07-26 14:06:43

Perl substr

2010-07-02 09:45:19

UML部署圖

2010-07-30 14:43:55

Flex應用

2010-08-06 09:18:14

Flex

2010-08-13 13:18:20

Flex應用程序

2009-09-03 09:16:35

C#遞歸函數

2009-09-03 15:43:21

C#時間計算

2010-08-12 15:44:25

Flex應用程序

2010-07-02 09:06:29

UML用例建模

2010-08-04 13:23:29

Flex事件

2010-08-04 14:34:35

Flex編程模型

2010-08-11 13:28:46

Flex行為

2010-08-13 14:19:44

Flex綁定機制

2010-08-09 11:14:36

Flex事件處理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产91亚洲精品一区二区三区 | 国产精品一区二区久久 | 欧美久久一区二区三区 | 国产乱码精品一区二三赶尸艳谈 | 亚洲一区二区三区乱码aⅴ 四虎在线视频 | 在线观看日本高清二区 | 中文字幕国产一区 | 九九久久久 | 久久一 | 羞羞的视频在线观看 | 中文字幕在线电影观看 | 亚洲成av片人久久久 | 一区二区三区视频免费观看 | 天天天操| 91久久国产综合久久 | 欧美久久精品一级黑人c片 91免费在线视频 | 久久极品| 一级视频在线免费观看 | 97人人澡人人爽91综合色 | 91伊人| 国产精品毛片无码 | 国产精品日产欧美久久久久 | 蜜桃av鲁一鲁一鲁一鲁 | 久久激情视频 | 日日夜夜天天干 | 精品久草 | 国产成人jvid在线播放 | 亚洲精品18| 欧美精品二区 | 华人黄网站大全 | 国产精品久久久久久久久久久新郎 | 欧美日韩国产一区二区三区 | 欧美精品一区二区在线观看 | 久久久国产一区 | 色天堂视频 | 国产成人免费在线 | 日本免费视频在线观看 | 精品久久香蕉国产线看观看亚洲 | 国产精品免费福利 | 婷婷福利视频导航 | 91视频免费 |