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

Flash Discussion :

recuperer une liste de dataProvider


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Par défaut recuperer une liste de dataProvider
    Bonjour,

    Je vous explique mon soucis : j'ai dans un mxml deux listes qui fonctionnent en drag n drop. Donc la deuxiéme liste correspondant à la séléction de l'utilisateur.

    Et je souhaite dans un premier temp récupérer la liste ainsi que la mettre dans un textinput sur une ligne entre des virgules.

    Je ne suis pas encore très alaise avec l'actionscript donc j'ai un peu de mal.

    Le dataProvider se nomme selected. Donc je met la liste dans un tableau mais je n'arrive pas à trouver la syntaxe pour mettre dans un textinput cette liste sur une ligne avec les virgules.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    			public function kind_music():void
    			{
    				var ac:ArrayCollection = new ArrayCollection();
    				selected.dataProvider = ac;
     
    				for(var i:uint=0; i <ac.length ; i++)
    				{
    					trace(ac[i]);
    				}	
    			}
    Merci d'avance

    Charlie

  2. #2
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Salut,

    avec un tableau contenant les valeurs:
    1. déclaration d'une variable string
    2. placement des valeurs séparées par des virgules dans la variable
    3. affectation de la valeur dans le textInput
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var sValues:String = new String();
    var iLength:int = ac.length;
     
    for(var i:int=0; i<iLength; i++)
        sValues += ac[i] + ", ";
    if( iLength > 0 )
        sValues = sValues.substr(0, sValues.length-2);
     
    myTextInput.text = sValues;
    au passage
    • c'est 4x plus rapide d'utiliser un type int pour l'itérateur de la boucle
    • il faut mieux utiliser une variable pour stocker le nombre d'élément du tableau pour ne pas le recalculer à chaque itération

  3. #3
    Membre éclairé Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Par défaut
    Bonjour beekeep,

    J'ai suivi ton raisonnement et j'ai pondu cela :

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    <![CDATA[
     
    			import mx.collections.ArrayCollection;
    			import mx.events.ValidationResultEvent;
    			import mx.validators.Validator;
     
    		    [Bindable]
     
    			private var sValues:String = new String();
    			private var selected_choices:Array = new Array();
    			private var iLength:int = selected_choices.length;
     
    			private function kind_music():String
    			{
     
    				for(var i:int=0; i<iLength; i++)
    				{
        				sValues += selected_choices[i] + ", ";
        			}
    				if( iLength > 0 )
    				{
        				sValues = sValues.substr(0, sValues.length-2);
    				}
    				return sValues;
    			}
     
    			private function recap():void
    			{
    				check_music.text = sValues;
    			}
    Mais le soucis c'est que cela ne fait rien, dans flex il y a juste un warning que je n'arrive pas à enlever :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Data binding will not be able to detect assignments to "selected_choices".
    J'ai déjà eu ce genre de warning et j'avais réussi à l'enlever mais pas celui là. Mais je ne pense pas que le soucis provienne de là.

    Est ce que quelqu'un aurai une idée de pourquoi cela ne fonctionne pas. Rien ne s'affiche dans monj champ text "check_music".

    Merci d'avance

    Charlie

  4. #4
    Rédacteur/Modérateur
    Avatar de beekeep
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 2 005
    Par défaut
    Salut,

    pour le warning, ça doit être un problème d'association de ton tableau à ta liste mais je peux pas t'aider sur ce point,
    d'ailleurs si un modérateur est de passage, merci de déplacer la discution dans le forum Flex.

    pour le reste je te propose de tester les valeurs des variables mais je pense pas que ça puisse marcher avant d'avoir supprimé le warning.
    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
                private function kind_music():String
                {
                    trace(iLength);
                    for(var i:int=0; i<iLength; i++)
                    {
                        sValues += selected_choices[i] + ", ";
                        trace(selected_choices[i]);
                    }
                    if( iLength > 0 )
                    {
                        sValues = sValues.substr(0, sValues.length-2);
                    }
                    return sValues;
                }
                
                private function recap():void
                {
                    trace(sValues);
                    check_music.text = sValues;
                }

  5. #5
    Membre éclairé Avatar de charlix
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2006
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 285
    Par défaut
    Bonjour,

    En fait j'y suis enfin arrivé mais en utilisant les DragEvent, voici le résultat :

    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
    21
    22
    23
    24
     
    			private function initApp():void {
                  choices.dataProvider =  new ArrayCollection([
                    {Musique:'Jazz'},
                    {Musique:'Hip Hop'},
                    {Musique:'Reggae'},
                    {Musique:'Rock'}
                  ]);
     
                    selected.dataProvider = new ArrayCollection([]);
                }
     
    			private var music_list:String='';
     
                public function dragDropHandler(event:DragEvent):void {    
     
                    var dragObj:Array = event.dragSource.dataForFormat("items") as Array; 
     
     
                    for (var i:Number = 0; i < dragObj.length; i++) { 
                        music_list += dragObj[i].Musique + ', ';
                    } 
                    Alert.show(music_list.substr(0, music_list.length-2));
                }

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 06/07/2010, 16h33
  2. Réponses: 0
    Dernier message: 02/06/2010, 23h57
  3. [Performance]Recuperer une liste important de données
    Par Shivan dans le forum Hibernate
    Réponses: 2
    Dernier message: 10/02/2009, 20h57
  4. Recuperer une liste (List) de valeur depuis une autre classe
    Par PasBoueno dans le forum Débuter avec Java
    Réponses: 10
    Dernier message: 22/07/2008, 14h53
  5. Réponses: 5
    Dernier message: 11/05/2006, 19h20

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