麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Flex > 正文

Flex 如何得到itemRenderer里面的內容

2024-09-12 17:51:25
字體:
來源:轉載
供稿:網友
前幾天在寫ViSR的時候,碰到了一個問題,問題如下:
1、定義了一個HorizontalList類型的可視化組件:MyHorizontalList。
2、MyHorizontalList的屬性:dataProvider。它綁定了一個外部數據。(假設這個外部數據共6條)
3、MyHorizontalList的屬性:itemRenderer,它使用了自定義的組件:MyItemRenderer
4、在MyItemRenderer里面定義了一個public類型的functon:refresh()
5、程序初始化的時候,眾所周知如果要對MyItemRenderer里面的item進行賦值的話,要使用data.XXX的形式,同時應該有6個MyItemRenderer被建立起來,同時它們都被HorizontalList的渲染器itemRenderer呈現了出來。

以上的情況一切都很順利,順心是不是呢:)

問題出現了:當Flex App運行后,我要動態的調用MyHorizontalList包含的MyItemRenderer里面的public funciton:refresh(),即對全部的MyItemRenderer里面的refresh都需要調用。而這個調用并不需要使用使用任何的event(例如itemClick這個event)。

探索方式:
1、遍歷MyHorizontalList里面的child,發現只有三個。
2、自動遍歷觸發itemClick event,可以實現,但是效率是一個問題(做大型的Flex App時,一定要注意效率這個問題。)

無奈下只能去HorizontalList.as里面搜尋答疑,結果終于讓我結合Adobe Doc發現了這個問題的解決方法。

這是尋找的思路:
HorizontalList是繼承與ListBase,而ListBase屬于mx.controls.listClasses包下面的class,因此最有希望的是在mx.controls.listClasses這個下面

實現方法:
1、在探索階段使用第一種方式的時候,會得到MyHorizontalList共有三個child,而我們就需要它的最后一個child。
即:MyHorizontalList.getChildAt( 2 )
2、請大家一定要注意:它最后一個child是一個ListBaseContentHolder類型的變量,而ListBaseContentHolder是存在于mx.controls.listClasses.ListBaseContentHolder里面的。
因此我們需要手動引入如下的class:
import mx.controls.listClasses.ListBaseContentHolder;
var myHList : ListBaseContentHolder = MyHorizontalList.getChildAt( 2 ) as ListBaseContentHolder;
通過上面的代碼就得到了myHList。(注意它的類型是:ListBaseContentHolder )
3、ListBaseContentHolder里面有一個public method:listItems,它的定義如下:
原文:An Array of Arrays that contains the item renderer instances that render each data provider item.
翻譯:一個由數組組成的 Array,其中包含用于顯示dataProvider提供的項目渲染器實例。
通過上面的翻譯不難看出,listItems就是我們要使用的method,即包含了MyItemRenderer的數組。

4、以下是的source就比較簡單了:
//得到MyRendererArr
var MyRendererArr : Array = listBase.listItems[ 0 ] as Array ;
//遍歷MyRendererArr
for ( var i : int = 0; i < MyRendererArr .length; i ++ ) {
//每一個MyRendererArr[ i ]都是一個實例的MyItemRenderer
var temp : MyItemRenderer= MyRendererArr [ i ] as MyItemRenderer;
//即我想要的最終結果
temp.refresh();
}

是不是很簡單,其實上面的方式適用于任何繼承與ListBase的組件。

關于ListBase的介紹:
它是所有提供項目列表的基類,即它是itemRenderer的基類。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产成人精品午夜视频' | 91精品国产毛片 | 国产精品视频在线观看免费 | 亚洲成人免费影视 | 日韩黄色成人 | av免播放| 羞羞视频免费观看网站 | 国产91九色视频 | 色综合精品 | 免费观看高清视频网站 | 羞羞视频在线免费 | 日产精品久久久一区二区福利 | 操操操日日日干干干 | 老a影视网站在线观看免费 国产精品久久久久久久久久尿 | 国产精品99久久久久久宅女 | 精品无吗乱吗av国产爱色 | 国产在线1区 | 久久精品资源 | 毛片视频大全 | asian裸体佳人pics | 天天看逼 | 国产精品av久久久久久久久久 | 中文有码一区二区 | 337p粉嫩大胆噜噜噜亚瑟影院 | 姑娘第四集免费看视频 | 亚洲午夜激情网 | 国产精品99久久久久久久vr | 亚洲第一页视频 | 欧美一区2区三区4区公司二百 | 毛片大全在线观看 | 一区二区三区无码高清视频 | 蜜桃91丨九色丨蝌蚪91桃色 | 草草久| 日日狠狠久久偷偷四色综合免费 | 国产福利不卡一区二区三区 | 亚洲午夜一区二区三区 | 久久艳片| 国产亚洲精品久久久久久久久久 | 欧美成年性h版影视中文字幕 | 成人毛片视频免费看 | 在线观看国产网站 |