Flash dynamique & XML

djh3o Messages postés 11 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 27 mars 2008 - 10 juil. 2005 à 23:38
cs_Mafassure Messages postés 1058 Date d'inscription jeudi 24 juillet 2003 Statut Modérateur Dernière intervention 14 février 2009 - 14 juil. 2005 à 13:39
Bonjour, étant débutant en Action script, j'ai une petite galère sur une chose que je désirerais faire.

Pour expliquer mon prob, je voudrais avoir une anim flash avec par exemple deux champs texte dynamique avec pour valeur en var Texte1 et Texte2

Je voudrais ensuite lire un fichier xml qui me rempli mes champs texte.

Bon jusque la rien de bien compliqué. J'arrive a les remplir a la main en finissant mon code par Texte1 = ma valeur dans mon xml

La ou ça se complique c'est que je voudrais optimiser mon code pour eviter de finir avec une liste de remplissage d'un nombre de variable délirant si par exemple j'ai 150 champs textes dans mon anim.

Je voudrais donc avoir un xml de cette sorte :

<Textes>
<Texte nom="ValeurSon">son</Texte>
<Texte nom="ValeurNumero01">08</Texte>
<Texte nom="ValeurTitre01">A Propos</Texte>
<Texte nom="ValeurTitre011">Nouveautes</Texte>
<Texte nom="ValeurTitre012">Profils</Texte>
<Texte nom="ValeurTitre013">Societe</Texte>
</Textes>

et avoir donc ensuite une routine qui boucle sur tous mes elements "Texte" dans mon xml est rempli la variable ayant pour nom la valeur "nom" de mon XML et y injecte la valeur correspondante dans l'xml.

Comme cela si a l'avenir j'ai un nouveau champs texte dans mon flash a ajouter, je n'ai qu'a lui donner un nom et a ajouter une ligne dans l'xml sans devoir modifier mon code action script....

you know what i mean ???

merci pour votre collaboration !

Alex

6 réponses

cs_Mafassure Messages postés 1058 Date d'inscription jeudi 24 juillet 2003 Statut Modérateur Dernière intervention 14 février 2009
11 juil. 2005 à 18:50
je suis pas sur d'avoir saisi, tu as déja débuté le script ? t'en est ou
http://showcases.club.fr/
0
djh3o Messages postés 11 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 27 mars 2008
11 juil. 2005 à 23:56
nan j'ai rien commencé... j'ai juste déja fait un script qui remplit les variables a la fin... mais ce que je veux c un script qui prend le nom de la variable egalement a remplir en dynamique dans l'xml pour eviter d'avoir un listing de 200 remplissages de variables mais plutot une boucle sur mon xml
0
cs_delivrance Messages postés 22 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 15 juillet 2005
14 juil. 2005 à 01:41
si ja i bien saisi tu veux créé autant de champs texte que de balise dans ton xml?
le probleme est que si tu as trop de champs texte il vont sortir de ta page, et du va devoir en plus cree un affichage defilant
si tu peux expliciter un peu plus ce que tu veux fair pour pouvoir mieux t aider... merci
0
djh3o Messages postés 11 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 27 mars 2008
14 juil. 2005 à 03:07
non je veux pas crée mes champs textes.... ils sont déja dans l'anim...

par exemple dans mon anim g 3 champs textes nommé txt1,txt2 et txt3

je fais un xml genre :

<textes>
<texte name=txt1>ma valeur1</texte>
<texte name=txt2>ma valeur2</texte>
<texte name=txt3>ma valeur3</texte>
</textes>

Ensuite je veux coder un action scipt qui va boucler dans mon xml et remplir la valeur correspondante dans le champ txt1, txt2 et txt3 mais sans finir mon code par :
txt1 = ...
txt2 = ...
txt3 = ....

car sinon si je rajoute un champs texte dans mon anim sa m'oblige a modifier mon action script avec txt3=...

alors que si je fais une récurence ou autre dans mon xml qui boucle dedant et me met la valeur dans le champs texte, si je rajoute un champ texte dans mon anim, j'ai qu'a rajouter une ligne dans mon xml et la boucle en question de mon action script remplira forcement le nouveau champs texte vu qu'il y a une nouvelle ligne dans mon xml...

mais je ne vois pas comment dans un code dire prendre ma valeur1 et la mettre dans la variable txt1 de maniere dynamique...

en espérant avoir été plus clair !

merci de votre aide ;)

Alex
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_delivrance Messages postés 22 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 15 juillet 2005
14 juil. 2005 à 13:23
le probleme est que c est toujours un peu batard comme comme concerption,
a la limite il vraudrait mieux que tu cres tes champs textes dynamiquement quite amettre dans ton xml la position a laquelle tu veux qu apparraissent tes champs du genre
<main> <textField texte "bla bla bla ..." positionX "28" positionY = "56"/> <textField texte "bla bla bla 2..." positionX "47" positionY = "72"/> <textField texte "bla bla bla 3..." positionX "15" positionY = "96"/>
</main>
pour le xml
et
dans ton code quelque chose du genre
var cible:MovieClip = _root;
// par exemple ou sinon le clip qui recoit tes textField
var textField_ary:Array = new Array();
var monXml:XML = new XML();
monXml.ignoreWhite = true;
monXml.onLoad = function(success) {
if (success) {
for (var i = 0; i<this.firstChild.childNodes.length; i++) {
textField_ary[i] = cible.createEmptyMovieClip(i,i)
textField_ary[i]._x = this.firstChild.childNodes[i].attributes["positionX"]
textField_ary[i]._y = this.firstChild.childNodes[i].attributes["positionY"]
textField_ary[i].createTextField("texte", 1, 0, 0, 1000, 20);
// les 2 derniers numeros correspondent respectivement a la largeur et la hauteur de ton textField
textField_ary[i].texte.text = this.firstChild.childNodes[i].attributes["texte"];
textField_ary[i].texte.textColor = 0x000000; //definie la couleur du texte en hexadecimal tu peux aussi bien la rebtrer comme paramettredans ton xml comme pour le reste
}
}
};
monXml.load("monXml.xml");
voila ... bye
0
cs_Mafassure Messages postés 1058 Date d'inscription jeudi 24 juillet 2003 Statut Modérateur Dernière intervention 14 février 2009
14 juil. 2005 à 13:39
Bonjour
perso j'opterai pour un positionnement via AS, fonction du nombre d'item
dans un proto tu crée un textField et ce positionne en fonction de son rang

un peux comme ici
http://www.flashkod.com/code.aspx?ID=31548

enfin c'est une idée...

http://showcases.club.fr/
0