2010-06-15 64 views
2

如何訪問List itemRenderer及其屬性(Spark-Flex 4)? 我想通過列表進行迭代,並這樣做(注意這是僞代碼):訪問列表itemRenderer

for (var i=0;i<NUMBER_OF_ITEMS_IN_LIST; i++){ 
    myList.getItemRenderer[i].property 
} 

回答

3

你想要什麼類型的處理對渲染執行?我懷疑像這樣的循環不會給你你需要的東西。

渲染器僅適用於您在屏幕上看到的元素。 dataProvider中的每個項目都不會有渲染器。這是爲了解決性能問題。您應該能夠通過API中的某些屬性訪問列表渲染器,但它可能不是公開的或記錄的。我迅速看了一眼,看不清楚。

在Halo ListBase中,存在名爲reservedItemRenderers和freeItemRenderers屬性的受保護屬性。我假設它們必須是Spark List中類似的東西。

+0

你是對的,renderers只是爲了明顯的項目,我不能做我想做的。做我想做的事情的唯一方法是訪問list的數據提供者而不是itemrenderer。 – dede 2010-06-15 23:29:22

4

對Spark中的ItemRenderer進行迭代很容易。 只是循環list.dataGroup中的元素,你很好。

if (list && list.dataGroup) { 
var i:int, numItems:int = list.dataGroup.numElements; 
for(i= 0;i < numItems; i++){ 
    var itemRendererItem:IItemRenderer = list.dataGroup.getElementAt(i) as IItemRenderer; 
} 
}