Forum de discussion
Forum « Flash et Shockwave » (archives)
Re: Intégration XMLen flash.
Envoyé: 18 mars 2006, 12h47 par dada
La plupart des tutos sur ce forum sont écrits en flash5. Cà a un côté positif, c'est que n'importe qui peut les utiliser de Flash5 à Flash8. Le côté négatif, c'est que çà fait prendre de (très) mauvaises habitudes à ceux qui débutent avec une version Flash6 ou supérieure.
Je te conseille ce cours tuto pour comprendre ce que je veux dire :
http://wiki.media-box.net/tutoriaux/flash/bonnes_pratique_flash
Comme tu le liras, il déconseille de poser du code sur les symboles et d'utiliser _root. Crois-moi c'est un conseil en or qui t'évitera de nombreux problèmes à venir.
Je n'ai pas regardé le tuto dont tu parles, mais j'ai fait des modifs dans ton code pour te montrer l'esprit. Il est fort possible que mon code ne fonctionne pas, car j'ai fait quelques suppositions, vu que je n'ai pas tous les éléments pour le comprendre. Après çà tout le code existant doit être sur la même image du scénario (là où sont les symboles).
Il me semble avoir compris que "monTexte" représente ce qu'on appelle "la variable du TextField". Si c'est le cas, je ne comseille pas non plus de l'utiliser :) Mais donner un nom d'occurence au TextField (ex : "tfi_texte") et cibler sa propriété "text" :
this.tfi_texte.text = "Hello world!";
Voici un exemple d'écriture de ton code :
---------------------------------------
stop();
twTexteDefil.direction = 0;
twTexteDefil.onEnterFrame = function()
{
if (this.direction<>0) this.monTexte.scroll += this.direction;
}
myXML = new XML();
myXML.ignoreWhite = true;
myXML.load("essai.xml");
myXML.onLoad = function(flag)
{
if (flag)
{
i = 0;
x = myXML.firstChild;
while (x.childNodes[i] != undefined)
{
montexte += "titre: "+x.childNodes[i].childNodes[0].attributes.value +"<br>" ;
monTexte += "texte: "+x.childNodes[i].childNodes[1].firstChild +"<br><br>" ;
i++
}
}
}
maFleche.onRollOver= function () {
this._parent.twTexteDefil.direction = -1;
}
maFleche.onPress = maFleche.onRelease = maFleche.onReleaseOutside = maFleche.onRollOut = maFleche.onDragOut = function() {
this._parent.twTexteDefil.direction = 0;
}
---------------------------------------
Avec l'habitude, on s'paerçoit qu'on peut parfois se passer d'utiliser "this" ou "this._parent", mais je pense qu'au début, il est préférable de les utiliser avec un peu d'exégération pour bien intégrer le concept de ciblage, réellement primordial dans Flash. Ce dont on parle ici, ce sont des problèmes simple de ciblage ; mais lorsqu'on fait des classes AS2, qu'on les fait collaborer ensemble, qu'on créé des associations, le ciblage devient de plus en plus crucial :p
Si des choses sont pas claires, n'hésites-pas ;)
++
dada
Réponses
|