sélection un objet grace à un string - Flash/ActionScript - Programmation
MarshPosté 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:
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!
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!