Créer dans une boucle des clips enfants de clip - createEmptyMovieClip attachMov

Résolu
zootallures Messages postés 2 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 3 septembre 2008 - 3 sept. 2008 à 10:17
zootallures Messages postés 2 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 3 septembre 2008 - 3 sept. 2008 à 22:28
Bonjour ,

Je cherche à créer sous un MovieClip "contain" des occurences d'objets de ma bibliothèque ,
le but est de pouvoir ensuite en supprimant le MovieClip "contain" supprimer du même coup tous ses enfants
J'emploi une méthode mais je ne suis pas sûre que dans le principe ce soit correct

Je met un exemple basique de ce que je veux faire

//--------------------------------------------------------

stop();
var contain:MovieClip = this.createEmptyMovieClip("contain", this.getNextHighestDepth());
contain._x = 32;
contain._y = 32;
var a:Number=0;
var zindex:Number;
//------------------------
for (var i:Number = 0; i != 15; i++) {
 for (var j:Number = 0; j != 10; j++) {
  this.createEmptyMovieClip("case"+i+"_"+j,zindex=this.getNextHighestDepth());
  contain.attachMovie("c0_0","case"+i+"_"+j,zindex);
  contain["case"+i+"_"+j]._x = i*34;
  contain["case"+i+"_"+j]._y = j*34;
 }
}
removeMovieClip(contain);
a=1;   // juste prétexte pour placer un point d'arrêt pour le debogueur

//---------------------------------------------------

quand je lance mon anim avec le debogueur j'obtiens grace au createEmptyMovieClip

_level0.case0_0 , _level0.case0_1 , _level0.case0_etc... ,

et avec le contain.attachMovie

_level0.contain.case0_0 , _level0.contain.case0_1, _level0.contain.case0_etc... ,

donc apparament j'ai en double chaque occurence puisque que quand je passe le removeMovieClip(contain) si  la série des _level0.contain.case0_etc... n'existe plus la série des  _level0.case0_etc... existe toujours

je pourrais détruire les occurence _level0.case0_etc... avec une boucle comme ça

for (var i:Number = 0; i != 15; i++) {
 for (var j:Number = 0; j != 10; j++) {
  removeMovieClip(this["case"+i+"_"+j]);
 }
}

Mais j'ai l'impression que pour ce que je veux faire ma méthode est un peu lourde

Donc à votre avis est ce une bonne façon de procéder ?

Et si non pourriez vous m'éclairer

Merci d'avance
A voir également:

1 réponse

zootallures Messages postés 2 Date d'inscription lundi 13 mars 2006 Statut Membre Dernière intervention 3 septembre 2008
3 sept. 2008 à 22:28
J'ai résolu le problème ,c'était assez simple en fait
ce qui m'a égaré dans mes essais précédents c'était le this.contain.getNextHighestDepth() dans le attachMovie , je pensais qu'il s'incrémentais tout seul alors qu'il reste à la même valeur

stop();
var contain:MovieClip = this.createEmptyMovieClip("contain", this.getNextHighestDepth());
contain._x = 32;
contain._y = 32;
var a:Number = 0;
var zindex:Number;
//------------------------
zindex=this.contain.getNextHighestDepth();
trace(zindex);
for (var i:Number = 0; i != 15; i++) {
 for (var j:Number = 0; j != 10; j++) {
  reference = this.contain.attachMovie("c0_0","case"+i+"_"+j,zindex++);
  reference._x = i*34;
  reference._y = j*34;
 }
}
3
Rejoignez-nous