Flex 3快速入門: 處理資料 使用資料繫結
本文來自:http://www.airia.cn/FLEX_Directory/using_data_binding/
資料繫結是連線一個物件中資料到另一個物件的處理過程。它提供了在應用程式中傳遞資料的方便的途徑。
Adobe Flex 3提供幾個途徑來指定資料繫結:
- 使用大括號({})語法。
- 使用在大括號中ActionScript表示式
- 在MXML中使用<mx:Binding>標籤
- 在ActionScript中使用繫結
使用大括號({})語法。
資料繫結需要源屬性,目標屬性,觸發事件。觸發事件表名了合適需要從源向目標拷貝資料。下邊的例子展示了一個Text控制元件獲得Hslider控制元件值屬性的資料。在大括號中的屬性名是繫結表示式的源屬性。當原屬性的值發生變化,Flex複製源屬性的當前值mySlider.value到目標屬性,Text控制元件的text屬性。
連線:要檢視使用大括號語法更復雜的關於資料繫結的例子,檢視Defining data models
例子
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
viewSourceURL="src/DataBindingSimple/index.html"
width="250" height="150"
>
<mx:Panel
title="Simple data binding"paddingLeft="10" paddingRight="10" paddingBottom="10" paddingTop="10"
horizontalAlign="center">
<mx:HSlider id="mySlider"/>
<mx:Text text="{mySlider.value}"/>
</mx:Panel></mx:Application>
使用在大括號中ActionScript表示式
大括號中的繫結表示式能夠被包含在ActionScript表示式中用來發回一個結果。例如你能夠使用大括號語法用於下邊型別的繫結:
- 在大括號中一個單獨的可繫結屬性
- 在大括號中使用字串串聯,其中報站一個可繫結的屬性
- 在大括號中基於可繫結屬性的計算
- 在大括號中使用條件運算來判斷一個可繫結屬性
下邊的例子中這事了使用者介面中使用了每一種型別的繫結表示式
例子
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
viewSourceURL="src/DataBindingActionScriptExpressionsSimple/index.html"
width="420" height="350"
>
<mx:Model id="myModel"><myModel>
<!-- Perform simple property binding. -->
<a>{nameInput.text}</a>
<!-- Perform string concatenation. -->
<b>This is {nameInput.text}</b><!-- Perform a calculation. -->
<c>{(Number(numberInput.text) as Number) * 6 / 7}</c><!-- Perform a conditional operation using a ternary operator;
the person object contains a Boolean variable called isMale. -->
<d>{(isMale.selected) ? "Mr." : "Ms."} {nameInput.text}</d>
</myModel></mx:Model>
<mx:Panel
paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10"width="100%" height="100%"
title="Binding expressions"
>
<mx:Form>
<mx:FormItem label="Last Name:"><mx:TextInput id="nameInput"/>
</mx:FormItem>
<mx:FormItem label="Select sex:">
<mx:RadioButton
id="isMale"
label="Male"
groupName="gender"selected="true"
/>
<mx:RadioButton
id="isFemale"
label="Female"
groupName="gender"/>
</mx:FormItem>
<mx:FormItem label="Enter a number:">
<mx:TextInput id="numberInput" text="0"/></mx:FormItem>
</mx:Form>
<mx:Text text="{'Simple binding: '+myModel.a}"/>
<mx:Text text="{'String concatenation: '+myModel.b}"/><mx:Text text="{'Calculation: '+numberInput.text+' * 6 / 7 = '+myModel.c}"/>
<mx:Text text="{'Conditional: '+myModel.d}"/></mx:Panel>
</mx:Application>執行結果
在MXML中使用<mx:Binding>標籤
可以使用<mx:Binding>標記作為大括號語法的大體方案。當你使用<mx:Binding>標記時,你需要將源屬性賦給<mx:Binding>標記的source屬性,並且目標屬性賦給detination屬性。這與使用大括號語法是等同的。在一個MCV架構中,與大括號語法相比,使用<mx:Binding>標記完全的從Model中分離了View(使用者介面)。在這個架構中,binging標記扮演了Controller。<mx:Binding>標記也使得不同的源屬性可以繫結到相同的目標屬性上,因為你可以使用多個<mx:Binding>標記指向同一個目標。
下邊的例子中,通過<mx:Binding>標記,使用者介面的控制元件屬性被繫結在wormModel資料模型中。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
viewSourceURL="src/DataBindingBindingTag/index.html"
width="400" height="200"
><!-- Model: Worm data -->
<mx:Model id="wormModel">
<Worm>
<length/>
</Worm>
</mx:Model><!--
View: User Interface controls.
-->
<mx:Panel
title="Using the binding tag"
paddingLeft="10" paddingRight="10" paddingBottom="10" paddingTop="10"
horizontalAlign="center"
>
<mx:Form>
<mx:FormItem label="Length of worm:">
<mx:HSlider id="mySlider"/>
</mx:FormItem>
</mx:Form>
<mx:Text id="statusText"/>
</mx:Panel><!--
Controller: Properties of user interface controls are bound
to the data model using <mx:Binding> tags.
--><mx:Binding
source="mySlider.value"
destination="wormModel.length"
/>
<mx:Binding
source="wormModel.length"
destination="statusText.text"
/>
</mx:Application>
注意: <mx:Binding>標記的source屬效能夠包含大括號。當包含大括號,source屬性的值被作為一個單獨的ActionScript表示式來處理。當有大括號在source屬性中時,它的值被當作關聯的ActionScript表示式來處理,下邊的表示式都是有效的。
<mx:Binding
source="'The worm is ' + wormModel.length + 'cm long.'"
destination="statusText.text"
/>
<mx:Binding
source="{'The worm is ' + wormModel.length + 'cm long.'}"
destination="statusText.text"
/>
<mx:Binding
source="'The worm is ' + {wormModel.length} + 'cm long.'"
destination="statusText.text"
/>在ActionScript中使用繫結
一般在MXML中使用大括號({})或<mx:Binding>標記來定義資料繫結。你也可以在ActionScript中定義資料繫結,通過使用mx.binding.utils.BindingUtils類來實現。這個類的靜態方法bindProperty()方法使你建立一個基於變數的繫結,bindSetter()方法顯示一個基於setter方法的繫結。例子
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
viewSourceURL="src/DataBindingActionScript/index.html"
width="400" height="200"
initialize="initializeHandler();"
><!--
Controller: Properties of user interface controls are bound
to the data model using ActionScript.
--><mx:Script>
<![CDATA[
import mx.binding.utils.BindingUtils;
private function initializeHandler():void
{
// Updates the model
BindingUtils.bindProperty(wormModel, "length", mySlider, "value");
// Reads from the model to update the status text
BindingUtils.bindProperty(statusText, "text", wormModel, "length");
}
]]>
</mx:Script><!-- Model: Worm data -->
<mx:Model id="wormModel">
<Worm>
<length/>
</Worm>
</mx:Model><!--
View: User Interface controls.
--><mx:Panel
title="Using the binding tag"
paddingLeft="10" paddingRight="10" paddingBottom="10" paddingTop="10"
horizontalAlign="center"
>
<mx:Form>
<mx:FormItem label="Length of worm:">
<mx:HSlider id="mySlider"/>
</mx:FormItem>
</mx:Form>
<mx:Text id="statusText"/>
</mx:Panel>
</mx:Application>
相關文章
- uni-app入門教程(3)資料繫結、樣式繫結和事件處理APP事件
- Flex 3處理資料 訪問 XML 資料4FlexXML
- Flex 資料繫結備忘Flex
- Flex3處理資料 訪問 XML 資料1FlexXML
- 批次繫結加快資料處理測試
- 入門系列之:Python3 如何使用NLTK處理語言資料Python
- 第一章 Excel資料分析入門 --(3)Excel處理資料的常用操作Excel
- 【阿不】深入ASP.NET資料繫結(中)—資料雙向繫結機理ASP.NET
- 第二講、Vue3.x繫結資料、繫結html、繫結屬性、迴圈資料VueHTML
- 快速入門資料結構和演算法資料結構演算法
- SpringMVC入門學習---資料的處理SpringMVC
- Python 資料處理庫 pandas 入門教程Python
- 資料繫結
- C#快速入門教程(29)—— ADO.NET離線元件與資料繫結C#元件
- 簡單資料繫結和複雜資料繫結
- [大資料之Spark]——快速入門大資料Spark
- 淺入深出Vue:資料繫結Vue
- WPF入門教程系列十八——WPF中的資料繫結(四)
- 資料繫結原理
- 資料中介者---強大的資料繫結3
- 快速理解D3js 資料繫結之 enter 與 exit 與 updateJS
- 使用Excel高效處理資料Excel
- 使用openpyxl處理表格資料
- Redis快取資料庫-快速入門Redis快取資料庫
- Python資料處理(二):處理 Excel 資料PythonExcel
- Python 3 快速入門 1 —— 資料型別與變數Python資料型別變數
- 資料處理
- Vue的資料繫結Vue
- 資料繫結之謎
- 【Angular-資料繫結】Angular
- 2、理解資料繫結
- Angular | 理解資料繫結Angular
- 小王的學習筆記(十四)——vue資料渲染、事件處理、表單輸入與繫結筆記Vue事件
- 資料清洗和資料處理
- 資料預處理-資料清理
- 資料分析--資料預處理
- 資料湖構建DLF資料探索快速入門-淘寶使用者行為分析
- PyTorch 60 分鐘入門教程:資料並行處理PyTorch並行