在List中访问itemRenderer

时间:2010-06-15 20:29:54

标签: flex air flex4 actionscript-3

如何访问List itemRenderer及其属性(Spark-Flex 4)? 我想迭代列表并执行类似的操作(注意它的伪代码):

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

2 个答案:

答案 0 :(得分:4)

迭代Spark中的ItemRenderers很容易。 只需循环遍历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;
 } 
}

答案 1 :(得分:3)

您想对渲染器执行哪种处理?我怀疑这样的循环不会给你你需要的东西。

仅为您在屏幕上看到的元素创建渲染器。 dataProvider中的每个项目都没有渲染器。这样做是为了解决性能问题。您应该能够通过API中的某些属性访问List渲染器,但它可能不公开或记录。我快速看了一下,说不出来。

在Halo ListBase中,有一些名为reservedItemRenderers和freeItemRenderers属性的受保护属性。我认为它们必须在Spark列表中类似。