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

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

7.3.訪問設(shè)置自己渲染器的組件

2024-04-27 13:52:00
字體:
供稿:網(wǎng)友
7.3.1. 問題
item renderer 需要訪問它的父組件的一些數(shù)據(jù)。
7.3.2. 解決辦法
實(shí)現(xiàn)IDropInListItemRenderer,通過drop-in renderer 訪問它的父組件.
7.3.3. 討論
實(shí)現(xiàn)了IDropInListItemRenderer 的renderer 不但能訪問data 等一些傳入的數(shù)據(jù),還能通過BaseListData類型的一個(gè)屬性訪問renderer 的父組件(如List 或DataGridColumn)。

mx.controls.listClasses.BaseListData 有如下屬性:
columnIndex : int
當(dāng)前是第幾列,當(dāng)用戶用mouse 點(diǎn)擊List 或DataGrid 某個(gè)元素時(shí)這個(gè)屬性被賦值。第一列是1。(注意,這個(gè)值的含意是指選中列是當(dāng)前可見表格中的第幾行,如果有橫向的滾動(dòng)條時(shí)要小心使用此屬性)(原文中指出第一列是1,但事實(shí)是0)

owner : IUIComponent
這個(gè)drop-in itemRenderer 的所有者,即一個(gè)List 對(duì)象,或DataGridColumn 對(duì)象。(我認(rèn)為原文這里是寫錯(cuò)了,owner 不可能是DataGridColumn 對(duì)象, 它只能是一個(gè)從ListBase擴(kuò)展的類型,我想作者這里是想寫DataGrid)

rowIndex : int
當(dāng)前是第幾行,類似columnIndex(這里要注意,這個(gè)屬性對(duì)于Tree 有特殊含意,這個(gè)值是根據(jù)當(dāng)前所有展開結(jié)點(diǎn)排列所得。)第一行是1。(原文中指出第一行是1,但事實(shí)是0)

uid : String
用于唯一標(biāo)識(shí)一個(gè)renderer 對(duì)象。

如果itemRenderer 實(shí)現(xiàn)了IDropInListItemRenderer 接口,即itemRenderer 會(huì)有set listData 和get listData 兩個(gè)方法,當(dāng)這個(gè)itemRenderer 被使用時(shí),它會(huì)被實(shí)例化并利用set listData 傳數(shù)據(jù)給itemRenderer,這個(gè)數(shù)據(jù)就是我們?cè)谇斑吿岬降模珺aseListData類型的對(duì)象。在調(diào)用renderer 的set data 方法時(shí)我們可以根據(jù)listData 來得到擁有這個(gè)renderer 的容器,并通過一些判斷來決定對(duì)data 的處理。在這個(gè)過程中,我們還可以調(diào)用自己的一些方法。下面我們通過例子說明listData 的用法。
+展開
-XML
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxmlwidth="400"
height="50implements="mx.controls.listClasses.IDropInListItemRenderer">

<mx:Script>
<![CDATA[
import mx.controls.DataGrid;
import mx.controls.List;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.controls.listClasses.BaseListData;
// store the list data item in case we want to do something with it
// later on
private var _listData:BaseListData;
[Bindable("dataChange")]
// a getter method.
public function get listData():BaseListData { return _listData; }
// a setter method,當(dāng)BaseListData 數(shù)據(jù)被傳入之后renderer 就可以通過它自己的一
//些屬性訪問擁有它的父組件中元素的數(shù)據(jù),甚至可以調(diào)用父組件中的方法。
public function set listData(value:BaseListData):void {
_listData = value;
if (value.owner is DataGridColumn) {
trace("DataGridColumn");
else if(value.owner is List) {
trace("List");
else if
(value.owner is CustomDataGrid) {
trace("CustomDataGrid");
(value.owner as CustomDataGrid).checkInMethod(this);
}
}
override public function set data(value:Object):void {
nameTxt.text = value.name;
appearanceTxt.text = value.appearance;
}

]]>
</mx:Script>
<mx:Canvas backgroundColor="#3344ff">
<mx:Label id="nameTxt"/>
</mx:Canvas>
<mx:Label id="appearanceTxt"/>
</mx:VBox>
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 利川市| 林周县| 涿州市| 梓潼县| 运城市| 双辽市| 怀远县| 方城县| 合江县| 温州市| 安新县| 吉木萨尔县| 竹山县| 鄄城县| 万盛区| 赫章县| 馆陶县| 湾仔区| 庆城县| 尤溪县| 原平市| 平和县| 崇左市| 吕梁市| 江源县| 繁峙县| 英山县| 鹿泉市| 二手房| 五大连池市| 威海市| 沙田区| 绍兴县| 平顶山市| 宣城市| 娄底市| 乐安县| 河北区| 西贡区| 惠水县| 壤塘县|