HEllo,
Bienvenue dans le monde de flash alors
En zieutant ton code, voilà ce que je pense qui faudrait modifier :
Code ActionScript :
var texte = monClip.createEmptyMovieClip("texte"+i, i+1);
Là, tu créer tes différents champs de texte dans le même conteneur "monClip".
Code ActionScript :
this.onEnterFrame = function() {
A ce niveau là, tu fais la boucle onEnterFrame sur this, qui contient donc "monClip", le mouvement sera effectif sur toute ta scène. Car c'est le conteneur global.
Si tu veux faire un mouvement différent pour chacun de tes clips, il faut affecter une boule onEnterFrame sur chacun de tes clips crées.
Ensuite, dans ta boucle onEnterFrame, tu réutilises la variable "i". Or cette variable aura pour unique valeur la dernière affection de la boucle (ici, numOfItems), car la boucle est terminée. Donc là je l'ai affecté à texte.i, pour qu'elle soit différente pour chaque instance de "texte".
Idem pour anglex et angley, à moins bien sûr que tu veuille qu'il soient tous synchronisés.
Voilà un exemple :
Code ActionScript :
_root.createEmptyMovieClip("monClip",this.getNextHighestDepth());
for (var i = 0; i<numOfItems; i++) {
var texte = monClip.createEmptyMovieClip("texte"+i, i+1);
texte.angle = i*((Math.PI*2)/(1*numOfItems));
texte._x = Math.cos(texte.angle)*90+cx;
texte.createTextField("champDeTexte",this.getNextHighestDepth(),0,00,200,200);
texte.champDeTexte.border = false;
texte.champDeTexte.selectable = false;
//texte.champDeTexte.embedFonts = true;
texte.champDeTexte.text = nodes[i].attributes.tag;
texte.champDeTexte.setTextFormat(monFormat);
texte.anglex = 0;
texte.angley = 0;
texte.i = i;
texte.onEnterFrame = function() {
this.anglex += this.i/25;
this.angley += this.i/35;
this.swapDepths(Math.round(this._xscale)+100);
this._x = 70+50*Math.cos(this.anglex/numOfItems);
this._y = 20+30*Math.sin(this.angley/numOfItems);
var s:Number = (this._y)/(cy+1);
this._xscale = this._yscale=s*100;
};
}
J'ai testé, ça fonctionne, maintenant à toi d'ajuster pour avoir ce que tu recherches
