Le but de ce tutorial est d'apprendre à manipuler des fichiers xml (simples) avec flash, et plus précisement dans cet exemple de se servir du xml pour transmettre des textes et des informations sur leur mise en page.
Ainsi, le fichier xml servira à charger dans flash plusieurs blocs de texte, avec pour chaque bloc son identifiant, sa position et sa taille.
On peut imaginer plus de paramêtres, par exemple la couleur de fond, le style de bord, le wordwrapping, le redimensionnement automatique, etc...
Voila donc notre fichier xml, il sert ici à charger deux champs de texte
<fields> <textField nom="monChamp1" contenu="he salut toi" x="50" y="50" largeur="80" hauteur="20"/> <textField nom="monChamp2" contenu="encore ?" x="100" y="100" largeur="80" hauteur="20"/> </fields>Comment manipuler le fichier xml: 1..pour creer un nouvel objet xml avec pour identifiant 'objetXml', la syntaxe est: objetXml = new XML(); 2..le premier noeud (node en anglais) est: <fields> 3...les noeuds enfants (childNodes en anglais) sont: <textField nom="monChamp1" ...> et <textField nom="monChamp2" ...> 4..Ici comme il n'y a qu'un niveau ce sont les enfants du tout premier noeud, ils sont donc accessibles de cette façon (stockés dans un tableau 'childNodes'): objetXml.firstChild.childNodes[x] avec x qui vaut 0 ou 1, vu qu'il n'y a que deux éléments. 5..on peut compter le nombre de noeuds enfants d'un objet xml en calculant la taille (nombre d'éléments) du tableau qui les contient: ici il y a objetXml.firstChild.childNodes.length noeuds enfants (=2). 6..pour préciser ce qu'il faut faire une fois le xml chargé, la syntaxe est: objetXml.onLoad = function(){ /* instructions */} 7..pour charger un document xml dans un objet XML préalablement créé, la syntaxe est: objetXml.load(urlDuFichier); Voici le code: movieClip.prototype.loadTextFieldsFromXml = function(url){ /* on créé l'objet XML qui va contenir les infos: */ this.myTextFields = new XML(); /* on définit une propriété 'parent' pour le xml qui pointe sur le clip: */ this.myTextFields.parent = this; /* on définit ce qu'il faudra faire une fois le xml chargé: */ this.myTextFields.onLoad = function(){ for(var i = 0; i < this.firstChild.childNodes.length ; i++) { nom=this.firstChild.childNodes[i].attributes.nom; contenu=this.firstChild.childNodes[i].attributes.contenu; x=this.firstChild.childNodes[i].attributes.x; y=this.firstChild.childNodes[i].attributes.y; largeur=this.firstChild.childNodes[i].attributes.largeur; hauteur=this.firstChild.childNodes[i].attributes.hauteur; profondeur=10+i; this.parent.createTextField(nom,profondeur,x,y,largeur,hauteur); this.parent[nom].text = contenu; } } /* on charge le XML: */ this.myTextFields.load(url); } |
.
.Commentaires: damien:ce prototype peut être vraiment très utile, d'autant plus qu'il se marie bien avec le php/sql rrrrrr: rrrrrvd marsu: toujours aussi bon dans le prototypage. damien: Les exemples sont disponibles ! Enfin ! bazyll: ;) tres utile ! o fait, l'exemple envoie vers une 404 ! ekameleon: j'allais le dire :) pas d'exemple ;)Sinon tout pareil que les autres :D damien: Oups... hm... et ben y'a pas d'exemple pour les scripts XML, pas encore (!) héhé il va falloir me croire quand je dis que tout marche à merveille :-D Il suffit de copier le code integralement, je vais essayer de mettre des exemples d'utilisation, mais il n'y aura pas de swf, enfin pas tout de suite... krikri: le mm script pour les images/vignettes est impek ! manque juste la possibilité de cliquer dessus :-) @ : Error 404... Pas terribles comme exemples... :( TT: n'y aurait il pas un symbole special a mettre ds la bibliotheque pour faire fonctionner le xml? TT: ne faut il pas construire un symbole special ds la bibliotheque pour faire fonctionner le xml? damien: non, pas du tout, c'est dynamique et ça ne fait pas partie de l'animation, c'est l'interet :-) Il n'y a pas d'exemple disponible pour l'instant. 7tt: h: hhh ouh: les adresses d'exemple ne fonctionne pas damien: bon, il n'y a toujours pas d'exemple mais au moins plus de 404 :-) votre pseudo Explorata: votre commentaire Bien vu pour ces exemples....une petite question : quelle serait la meilleure programmation pour acquérir des imagettes, du texte et les afficher à l'écran en movieclip animés ? coogard: je voudrais bien apprendre le flash mx mais j'ai pas trouver un site qui commance des le debut par ce que j'arrive meme pas avfaire une petite animation Duk_4t: Bon, j'adore ce site car il a le merite d'etre simple et claire, ce qui n'est pas le cas pour tous les site du genre, enfin, mis appart cette pitite faille, a modifier... gugu: Cela fonctionne mais j'ai un souci quand je veux attribuer une couleur differente a differents noeud votre pseudoj: votre commentairej Merdasse: Je comprend rien ca pu sympa: sympa le site bon courage !!!Un petit swf accompagné du tuto et ca serait le pied ! sympa: .fla lol pas swf ! Nas: Oui, et le fichier xml qui va avec !merci sarah: merci bcp pr cet aideet je veux que vous ajoutez d'autre function de l'action script de flash voerty: eart romulus: je veux qqch de mieux. Pourrave: rarement vu quelque chose d'aussi nullos. Quelle tristesse... abc: votre comtest de commentaire |