Passer un nom de variable dynamiquement en as 3

cs_ourso Messages postés 92 Date d'inscription mercredi 11 octobre 2006 Statut Membre Dernière intervention 5 décembre 2010 - 1 sept. 2008 à 02:07
cs_ourso Messages postés 92 Date d'inscription mercredi 11 octobre 2006 Statut Membre Dernière intervention 5 décembre 2010 - 2 sept. 2008 à 20:04
Bonjour je me mets tout frais dans l'as 3 ...j'essaie de construire une classe qui charge un xml contenant toute les infos de mon site... les couleurs les typos,les légendes
J'ai assez l'habitude de coder en AS2, mais en as3 je cherche mes marques... ça vient ... mais :

En as 2
mon_nom_de_variable_dynamique=le nodeName de mon noeud XML
set (mon_nom_de_variable_dynamique,la valeur de ma variable);

ça me permettait de configurer mes objets de manière automatisée et de rentrer un peu ce que je voulais tant que mon xml restait dans les normes fixées par mon parsage...

là en AS3 le compilateur me renvoie une erreur bien sur... pas de typage, pas glop.
Est-ce que l'un d'entre vous a trouvé la reponse de cete épineuse question ?
comment donner un nom dynamique à cette variable pour construire mon tableau associatif et avoir mes données sous la main ?
merci d'avance !
Steph

2 réponses

stefbuet Messages postés 576 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 12 mai 2009
2 sept. 2008 à 00:57
Salut,

le set() c'est de l'AS1 :)
utilise :
this[mon_nom_de_variable_dynamique]=la valeur de ma variable

Stefbuet.
0
cs_ourso Messages postés 92 Date d'inscription mercredi 11 octobre 2006 Statut Membre Dernière intervention 5 décembre 2010
2 sept. 2008 à 20:04
Oui,


c'est la seule solution que j'ai trouvé aussi...


Sauf que dans une methode de classe... Le compilateur n'aime pas du tout que j'appelle ma variable "this".
est-ce qu'il y a un autre moyen de designer ma variable sans la nommer autrement que avec "this" ? ou bien dans le contexte d'une classe comment puis faire pour que this designe cette variable ?
Mon intention avec la classe que je prepare était d'avoir toutes les presets de couleurs, de polices (tailles, polices, couleurs). j'ai parsé les couleurs sans problème. C'était pour les polices... Je souhaitais avoir un objet multidimensionnel du type 
mesPresets.fontes.taille.extra pour appeller une taille de police par exemple....

Cette méthode se trouve dans une classe qui etends ma classe de loading xml

public function syndicateFonts /* VERSION : 1.0*/(xml_datas:XML)
   {
    trace("Entrée dans syndicateFonts");
    
    
    var string_array:Array = new Array();
    var value_array:Array  = new Array();
    var main_array:Array  = new Array();
    var longueur_totale:int = 0;
    var i:int = 0;
     
    for each (var item:XML in xml_datas.children())
    { 
     
     var longueur:int = item.*.length();
     //trace("Nom de la rubrique : "+item.name())
     //trace("Longueur ["+longueur+"] du jeu d'enregistrements total : " + longueur_totale);



     var nom:String = item.name();
     if (item.name()=="fontes") 
      { 
       longueur_totale=longueur_totale+longueur;
      }
     



     for each (var subNode:XML in item.*)
     { 
      var type:String =
[mailto:item.@id
item.@id
]
;
      fontes[type] = new Array();
      if ((
[mailto:item.@type==%22simple%22)&&(item.name()==%22fontes
item.@type=="simple")&&(item.name()=="fontes
]
")) 
      { 



       //trace(
[mailto:item.@id
item.@id
]
);
       //trace("noeud typo : "+type+" detecté... En cours de procedure longueur totale :"+longueur_totale);
       var temp_object:Object = new Object();
       var identifiant:String =
[mailto:subNode.@id.toString
subNode.@id.toString
]
();
       var valeur:* =
[mailto:subNode.@valeur
subNode.@valeur
]
;
       //var [identifiant] = valeur;
       temp_object[identifiant]=valeur;
       //temp_object={identifiant:valeur};
       string_array.push(identifiant);
       value_array.push(valeur);
       fontes[identifiant] = valeur;
       i++;
      
      }
     
       //trace("parsage :"+i+" sur :"+longueur_totale);
      if(i==longueur_totale)
      {
       
       //Trigger=true;
       fontes["donnees_disponibles"] = string_array;
       fontes["valeurs"] = value_array;
       //trace("fin du parsage :"+i+1+" sur :"+longueur_totale+"/ infos dans le tableau : "+value_array.length);
      
      }
      
     }
    }
   }


mais bon je n'arrive pas à rentrer ce satané tableau de cette manière sans passer par un array.... Si tu as une idée ?
C'est très enervant car je le faisais les yeux fermés en as2... Mais là en plus de l'AS3 je me met aux classes... et j'avoue que je suis pas très à l'aise

en attendant j'ai simplifié d'un niveau et ça marche :
mesPresets.fontes.taille_extra
merci en tout cas pour ta reponce

amicalement,

Steph
0
Rejoignez-nous