sélection un objet grace à un string

sélection un objet grace à un string - Flash/ActionScript - Programmation

Marsh Posté le 03-03-2006 à 16:11:14    

Bonjour à tous!
 
J'ai un problème avec du code actionscript (Flash MX 2004 Pro).  
Explications:
       J'ai plusieurs occurences d'un objet (un symbole de type clip) sur ma page, chacune ayant un nom différent. A coté de ça, j'ai un fichier xml dans lequel je stoque des informations concernant les objets de la page flash (ex: nom_objet, dimension, position). Je lis donc mon fichier xml, je récupère les données qui viennent ensuite me servir de paramètre à une fonction qui devrait modifier les caractéristique de l'objet concerné. Mon problème, c'est qu'après lecture du fichier xml, j'arrive très bien a récupérer les données, seulement le nom de l'objet étant de type string, il n'arrive pas a accéder a l'objet lui même.
J'imagine que tout ça n'est pas très clair, alors je vous présente un bout de code:
 
dans mon fichier xml:
 
<?xml version="1.0" encoding="UTF-8"?>
<objets>
  <objet nom="obj1" largeur="12" x="5" y="10" />
                          <objet nom="obj2" largeur="13" x="15" y="10" />
</objets>
 
dans mon fichier flash, sur la première image:
 
docXML = new XML();
docXML.ignoreWhite=true;
docXML.onLoad = function(ok)
{
 if (ok)
 {
  noeuds = docXML.firstChild.childNodes;
  nbre = noeuds.length;
  premierobjet = this.firstChild.firstChild;
  dernierobjet = this.lastChild;
  enCours = premierobjet;
  for (i=0; i<(nbre); i++)
  {
   objet = enCours.attributes.nom;
   //test.text = typeof(objet);  
   modifier(enCours, objet);
   enCours = enCours.nextSibling;
  }
 }
};
docXML.load("liste.xml" );
 
function modifier(xml, objet)
{
 var x= xml.attributes.x;
             var y = xml.attributes.y;
 objet._x = x; //pour flash, "objet" correspond a un string, mais pas au nom de l'objet
             objet._y = y;
}
 
Par contre, si g réécrit la fonction modifier de cette façon, ça marche, mais je ne me vois pas réécrire la fonction pour les 100 occurences!!!
 
function modifier(xml, objet)
{
 var x= xml.attributes.x;
             var y = xml.attributes.y;
 objet1._x = x; //objet1 est le nom d'un des objet que j'ai créé sur la page
             objet1._y = y;
}
 
 
J'espère que j'ai été assez compréhensible.  
Merci pour votre aide.
tcho! :hello:  
 

Reply

Marsh Posté le 03-03-2006 à 16:11:14   

Reply

Marsh Posté le 03-03-2006 à 16:21:21    

Youhou, j'ai moi même trouvé la réponse!!!  
il suffit de faire appel a modifier avec "modifier(enCours, _root[objet1])

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed