IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

parcourir un ArrayCollection


Sujet :

ActionScript 3

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut parcourir un ArrayCollection
    Bonjour,

    J'ai un souci avec mon code que je vais m'empresser de vous montrer
    :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public function refreshBuddyList():void
    {
    	var dp:ArrayCollection = cList.list_buddies.dataProvider as ArrayCollection
    	for (var i:int = 0; i < dp.length; i++)
    	{
    	var b:Object = dp.getItemAt(i).data
     
    		// Replace item
    		dp.setItemAt({label:b.name, nb:tabNbMessageRecu[b.name+monPseudo], data:b , st:b.id, bb:tabStatutBuddyBloque[b.name+monPseudo], se:tabStatutBuddySelectionne[b.name+monPseudo]}, i)
     
     
    	}
    	// Update list
    	dp.refresh()
    	cList.list_buddies.invalidateList()
     
    }
    le but de ce code est de rafraichir la liste avec les nouvelles valeurs des tableaux pour ensuite être affichées dans le composant cList

    A l'exécution je me suis apercu que cela ne fonctionnait pas très bien j'ai donc essayé de le débugguer.
    J'ai vérifié d'abord la taille de la collection, cela est correcte.
    Ensuite j'ai modifié le code pour vérifier si j'obtenais bien la propriété "name" de l'objet "b" dans ma boucle en faisant ce ci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public function refreshBuddyList():void
    {
    	var dp:ArrayCollection = cList.list_buddies.dataProvider as ArrayCollection
    	var taille:int = dp.length
    	var a:Alert = Alert.show("refreshBuddyList"+taille, '');
    	for (var i:int = 0; i < dp.length; i++)
    	{
    		var b:Object = dp.getItemAt(i).data
     
    			// Replace item
    			//dp.setItemAt({label:b.name, nb:tabNbMessageRecu[b.name+monPseudo], data:b , st:b.id, bb:tabStatutBuddyBloque[b.name+monPseudo], se:tabStatutBuddySelectionne[b.name+monPseudo]}, i)
     
    			Alert.show("refreshBuddyList", b.name);		
     
    	}
    	// Update list
    	dp.refresh()
    	cList.list_buddies.invalidateList()
     
    }
    Tout fonctionne parfaitement, le problème arrive avec cette ligne de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dp.setItemAt({label:b.name, nb:tabNbMessageRecu[b.name+monPseudo], data:b , st:b.id, bb:tabStatutBuddyBloque[b.name+monPseudo], se:tabStatutBuddySelectionne[b.name+monPseudo]}, i)
    Là j'ai des problèmes dans ma boucle : quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Alert.show("refreshBuddyList", b.name);
    Je vois que j'ai des doublons voire triple et des objets manquants... la taille de ma collection est de 19 et je ne boucle pas 19 fois mais 10 ou 8 ou autre Je me rends compte que cette instruction pose problème, je la supprime et hop la boucle fonctionne parfaitement.

    j'avoue être un peu dépassé par le problème.

    merci de votre aide

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    C'est très tordu comme code !!

    Pourquoi tu ne mets pas à jour les propriétés de l'objet existant de la collection plutôt que de le remplacer par un nouveau créé à partir du premier ???

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Par défaut
    C'est ce que j'ai fait finalement car il n'y a que comme cela que le code fonctionne ! merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Parcourir un arrayCollection
    Par dubitoph dans le forum Symfony
    Réponses: 3
    Dernier message: 09/12/2011, 14h55
  2. Parcourir un arraycollection
    Par didogeneve dans le forum Flex
    Réponses: 1
    Dernier message: 27/04/2009, 09h36
  3. [langage] Parcourir un tableau
    Par Jibees dans le forum Langage
    Réponses: 13
    Dernier message: 22/04/2003, 14h18
  4. Comment cree une boite de dialogue parcourir
    Par kenshi dans le forum MFC
    Réponses: 5
    Dernier message: 06/01/2003, 10h30
  5. [VB6] [MDI] Parcourir toutes les MDIForms chargées
    Par d.carail dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/10/2002, 09h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo