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

首頁 > 網站 > WEB開發 > 正文

7.3.訪問設置自己渲染器的組件

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

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

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

rowIndex : int
當前是第幾行,類似columnIndex(這里要注意,這個屬性對于Tree 有特殊含意,這個值是根據當前所有展開結點排列所得。)第一行是1。(原文中指出第一行是1,但事實是0)

uid : String
用于唯一標識一個renderer 對象。

如果itemRenderer 實現了IDropInListItemRenderer 接口,即itemRenderer 會有set listData 和get listData 兩個方法,當這個itemRenderer 被使用時,它會被實例化并利用set listData 傳數據給itemRenderer,這個數據就是我們在前邊提到的,BaseListData類型的對象。在調用renderer 的set data 方法時我們可以根據listData 來得到擁有這個renderer 的容器,并通過一些判斷來決定對data 的處理。在這個過程中,我們還可以調用自己的一些方法。下面我們通過例子說明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,當BaseListData 數據被傳入之后renderer 就可以通過它自己的一
//些屬性訪問擁有它的父組件中元素的數據,甚至可以調用父組件中的方法。
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>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丹凤县| 肇源县| 达拉特旗| 高尔夫| 台湾省| 荃湾区| 安阳市| 新安县| 咸丰县| 凤庆县| 旺苍县| 眉山市| 英德市| 桐柏县| 靖西县| 灵山县| 三明市| 涿州市| 永川市| 扎赉特旗| 康乐县| 呈贡县| 寿阳县| 城口县| 中江县| 沅陵县| 平塘县| 蓬溪县| 玉山县| 腾冲县| 东明县| 长岛县| 博罗县| 新乡市| 荃湾区| 邢台县| 南平市| 长寿区| 南平市| 襄汾县| 沧源|