访问列表中的itemRenderer

问题描述 投票:2回答:2

如何访问列表itemRenderer及其属性(Spark-Flex 4)?我想遍历列表并做类似的事情(注意它是伪代码):

for (var i=0;i<NUMBER_OF_ITEMS_IN_LIST; i++){
  myList.getItemRenderer[i].property
}
apache-flex air flex4 actionscript-3
2个回答
3
投票

您要在渲染器上执行哪种类型的处理?我怀疑这样的循环不会满足您的需求。

仅针对您在屏幕上看到的元素创建渲染器。 dataProvider中的每个项目都不会有一个渲染器。这样做是为了解决性能问题。您应该能够通过API中的某些属性访问“列表”渲染器,但是它可能不是公开的,也没有记录在案。我快速看了一眼,无法分辨。

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


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;
 } 
}
© www.soinside.com 2019 - 2024. All rights reserved.