2010-06-15 7 views
2

Comment accéder à la liste itemRenderer et ses propriétés (Spark - Flex 4)? Je veux parcourir la liste et faire quelque chose comme (notez son code de pseudo):Acess itemRenderer dans la liste

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

Répondre

3

Quel type de traitement que vous voulez effectuer sur les équarrisseurs? Je soupçonne qu'une boucle comme celle-ci ne vous donnera pas ce dont vous avez besoin.

Les rendus sont créés uniquement pour les éléments que vous voyez à l'écran. Il n'y aura pas de moteur de rendu pour chaque élément de votre fournisseur de données. Ceci est fait pour le problème de performance. Vous devriez être en mesure d'accéder aux moteurs de rendu List à travers certaines propriétés de l'API, mais cela peut ne pas être public ou documenté. J'ai jeté un coup d'œil rapide et je ne pouvais pas le dire.

Dans la HalB ListBase, il existe des propriétés protégées nommées reservedItemRenderers et freeItemRenderers. Je suppose qu'ils doivent être quelque chose de similaire dans la liste Spark.

+0

Vous avez raison, les moteurs de rendu sont juste pour les objets visibles et je ne peux pas faire ce que je voulais. La seule façon de faire ce que je voulais est d'accéder à dataprovider de la liste au lieu de itemrenderers. – dede

4

L'itération sur ItemRenderers dans Spark est facile. Juste boucle sur les éléments dans list.dataGroup et vous êtes bon.

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; 
} 
} 
Questions connexes