Forums Développement Multimédia

Aller au contenu

Colorpicker avec un Xml

xml array colorpicker object CODE Actionscript

11 réponses à ce sujet

#1 Kainry

    Ceinture Orange

  • Members
  • PipPipPip
  • 46 messages

Posté 30 November 2012 - 13:55 PM

Bonjour à tous !

Désolé de poster autant de sujet en ci peux de temps... mais voyez-vous je me retrouve souvent bloqué et google n'a pas réussi à me guider. :cry:

Je m'explique :

J'utilise le composant colorpicker de flash, et je voudrais lui donner ma palette de couleur via un xml (jusque là rien de bien compliquer.... enfin je croyais...)

J'arrive bien à importer mon xml, je fais mes petits test, tous va pour le mieux, sauf que dès lors que j'introduis mes valeurs du xml dans un objet il m'est impossible de les ressortir du tableau....
un petit bout de code s'impose :

//Mise en place d'une boucle pour récupérer toutes les infos
   for(var i:int =0 ; i < xmlval.length(); i++){
    //trace(xml.fichier[i].source);
    //{nom:xml[i].@nom, fichier:xml[i].@fichier};
    obj = {valeur:xmlval[i]};
    tableau.push(obj);
    trace ("regarde");
    trace (obj.valeur);
    }
    trace (tableau);
    test = tableau.toString();
    //trace (yeah);
    trace (test);
 

Le trace de tableau me sort : [object Object], [object Object], ... (et ainsi de suite)
Le trace de test (qui je croyais m'aurais sortis les valeurs des objets) me sors la même chose...

mais mon problème c'est pourquoi alors "trace(obj.valeur)" me sors les données que je souhaite...

j'arrive pas à dire montre moi les valeurs des objets que tu as en toi tableau (s'il te plait *_*)....

si vous avez une idée? je pense que c'est simple et que je suis partis trop loin... mais j'attends vos réponse !

Merci d'avance à tous

Cordialement

Kainry.

PS :
petite précision j'utilise le "toString()" pour qu'il me sorte les couleurs ainsi : 0x00FF00, 0xFF00FF, (soit le format idéal pour le tableau du colorpicker...)

#2 Badwolf

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 667 messages

Posté 30 November 2012 - 14:06 PM

Hello

d'après ton code tu stockes des "object" dans ton tableau et chaque object a une propriété "valeur" donc tous les résultats de tes trace sont normaux.

si tu veux afficher les valeurs, tu peux parcourir ton tableau par ex:

for(var z:* in tableau){
trace(tableau[z].valeur);
}

et si veux une valeur spécifique :

trace(tableau[1].valeur);

ton incompréhension vient du fait que tu ne stockes pas des valeurs mais des object ayant une propriété valeur, donc tu ne peux pas y avoir accès directement.

après si tu ne souhaites que stocker des valeurs, pourquoi avoir recours a des object ?

n'est-il pas plus simple de faire:


for(var i:int =0 ; i < xmlval.length(); i++){
tableau.push(xmlval[i]);
}
 

voir même



tableau = xmlval
 

Haoooooooooooooooooooooooooooooooooooooooooooooou !!!

#3 Kainry

    Ceinture Orange

  • Members
  • PipPipPip
  • 46 messages

Posté 30 November 2012 - 14:18 PM

Bonjour,

ça marche ! niquel merci !

mais maintenant comment je peux faire en sorte d'obtenir toute les valeurs de la manière d'un toString() ?


for (var z:* in tableau){
         trace(tableau[z].valeur);
         yeah=tableau[z].valeur.toString();
        }
 

car une fois que dans mon colorpicker je lui met en paramètre :

cp.colors = [yeah];

il m'affiche uniquement la dernière couleur des valeurs...
peut-être une autre manière que toString() ?

Mais merci pour ta réponse rapide :)

EDIT : oops oublier de préciser que ça faisait la même si il y avait pas le toString(); j'obtient bien ma dernière valeur dans mon colorpicker.

#4 Badwolf

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 667 messages

Posté 30 November 2012 - 14:24 PM

Je pense t'avoir donné la réponse plus haut mais tu peux faire ca:


var yeah:Array = new Array();

for (var z:* in tableau){
                 trace(tableau[z].valeur);
                 yeah.push(tableau[z].valeur);
                }


cp.colors = yeah;
 

mais tu te compliques la vie franchement, tu pourrais tout faire directement.

juste pour vérifications cp.colors est de quel type ? array ?
Haoooooooooooooooooooooooooooooooooooooooooooooou !!!

#5 Kainry

    Ceinture Orange

  • Members
  • PipPipPip
  • 46 messages

Posté 30 November 2012 - 14:27 PM

oui c'est un array.

je pense aussi que je me complique la vie car plus haut dans mon code j'ai ça :


private function processXML(e:Event){ // faire afficher le xml
   myXML = new XML(e.target.data);
   trace (myXML);
   affiche(myXML);
  }
  //Déclaration de la fonction qui va afficher les infos
  private function affiche(baseInput:XML):void{
   trace ("XML OUTPUT");
   trace(baseInput.couleur.valeur.text());
   //Transformation des données brutes en données XML
   xmlval = baseInput.couleur.valeur;
 
   for each (var valeur in xmlval){
    trace(valeur);
   
   }
 

et valeur m'affiche déjà les valeurs souhaité. sauf que je croyais que je devais les intégrer à un tableau pour ensuite les ressortir pour les utiliser autre part. (peut être que oui j'en ai trop fait...)

en tous cas merci !

je test ça!

#6 Badwolf

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 667 messages

Posté 30 November 2012 - 14:29 PM

tu as déjà tout dans xmlval

cp.colors = xmlval

devrait même directement marcher.
Haoooooooooooooooooooooooooooooooooooooooooooooou !!!

#7 Kainry

    Ceinture Orange

  • Members
  • PipPipPip
  • 46 messages

Posté 30 November 2012 - 14:30 PM

Bon testé et ça fonctionne PARFAIT !!!

Merci pour le temps que tu m'as accordé et l'aide apporté !

Sûrement à très vite héhé

#8 Kainry

    Ceinture Orange

  • Members
  • PipPipPip
  • 46 messages

Posté 30 November 2012 - 14:32 PM

Pour le xmlval ça ne fonctionne pas car c'est une variable de type XML et non Array (:

#9 Badwolf

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 667 messages

Posté 30 November 2012 - 14:32 PM

ok

curieux de voir si


cp.colors = xmlval as Array
 

fonctionnerait
Haoooooooooooooooooooooooooooooooooooooooooooooou !!!

#10 Kainry

    Ceinture Orange

  • Members
  • PipPipPip
  • 46 messages

Posté 30 November 2012 - 14:35 PM

Bah alors là je suis sur le c** ça fonctionne mais ça me sort pas du tous ma palette du XML.... pourquoi?

#11 Badwolf

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 667 messages

Posté 30 November 2012 - 14:41 PM

C'etait juste un essai.

ca force le type de ton XML en Array mais ça peut foutre le bordel aussi.

vu que je ne connais pas la structure de ton XML ni ce qu'il contient, j'imagine que le composant colorPicker, ne reconnaissant pas les données de la propriété "colors" comme étant valides, il doit afficher soit des valeurs par défaut , soit interpréter "à sa sauce" ce que tu lui envoies.

remets plutôt ce qu'il y avait avant, c'est plus sur :D
Haoooooooooooooooooooooooooooooooooooooooooooooou !!!

#12 Kainry

    Ceinture Orange

  • Members
  • PipPipPip
  • 46 messages

Posté 30 November 2012 - 14:44 PM

Oui c'est ce que j'ai fait, je préfère quand ça marche =D

en tous cas encore merci :)



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)