Itération sur type arraycollection pendant l'ajout et la suppression d'éléments
Je veux effectuer une itération sur un type arraycollection dans Flex alors qu'il peut y avoir des éléments ajoutés et supprimés.
Puisque je n'ai pas trouver un moyen d'utiliser un "classique" Itérateur comme en Java, ce qui devrait faire le travail. J'ai essayé le Curseur. Mais ça ne fonctionne pas vraiment la façon dont je le veux 😉 Alors, comment puis-je le faire bien ?
var cursor:IViewCursor = workingStack.createCursor();
while (!cursor.afterLast)
{
//Search
deepFirstSearchModified(cursor.current.node,nodeB,cursor.current.way);
//Delete Node
cursor.remove();
//Next Node
cursor.moveNext();
}
OriginalL'auteur Dukeatcoding | 2011-05-24
Vous devez vous connecter pour publier un commentaire.
Je pense préférable d'utiliser Nouvelle Collection/Tableau pour opertations comme
Espère que l'aide
OriginalL'auteur Imran
Essayez d'utiliser les éléments suivants:
OriginalL'auteur Constantiner
Il existe une solution pour votre problème:
http://www.ericfeminella.com/blog/actionscript-3-apis/
Ont un look à la CollectionIterator classe.
Acclamations
OriginalL'auteur Dennis Jaamann
Prendre un coup d'oeil à ActionLinq. Il met en œuvre .Net Linq2Objects motif, y compris
IEnumerable
. Bien sûr, vous devez être prudent, parce que vous êtes en train de modifier les articles que vous avez à parcourir...OriginalL'auteur Brian Genisio
En flex (ou actionscript) tout changement que vous faites, est visible instantanément. Ainsi, vous pouvez faire ce que vous voulez dans une pour:
Je pense que cela devrait bien fonctionner.
removeElement n'est pas une méthode d'un objet arraycollection
il va en effet lancer une exception en raison du fait que vous essayez de supprimer des éléments qui ne sont plus à un certain indice
travailler avec flex, vous verrez qu'il n'a pas de simultanéité approche pour le développeur. Vous n'aurez pas le multithreading problèmes en flex!
Vous devez effectuer une itération vers l'arrière ou vous vous retrouvez à sauter éléments. Si vous retirez l'élément en cours, puis augmenter le compteur, vous vous retrouvez à sauter l'élément suivant
OriginalL'auteur artaxerxe