AddChild et setChildIndex

Résolu
joviper Messages postés 24 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 21 avril 2009 - 18 avril 2009 à 18:41
joviper Messages postés 24 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 21 avril 2009 - 21 avril 2009 à 09:05
Bonjour,

j'ai le problème suivant :
- ma scène possède un clip qui contient un menu. J'ai appliqué une fonction Drag à ce clip.
- elle contient aussi un clip vide (chargeur) situé sur le calque juste en dessous du calque avec le clip menu.

à l'intérieur de mon clip menu, j'ai paramétré certains boutons pour qu'ils chargent un swf extérieur dans mon clip vide (chargeur), situé à la racine, sous le menu.

Je m'attendais donc à ce que le swf chargé apparaissent sous le menu...or il apparait en premier plan ! du coup, plus accès au menu.
comment puis-je procéder ?

j'ai déjà testé avec setChildIndex mais ça ne fonctionne pas...

merci d'avance de m'aider à comprendre.

voici le lien vers l'exemple en .swf (cliquez sur le bouton "actualités" pour observer la chose...) :
exemple


voici le code pour un bouton :


<hr />
<ol>
<li class= "">


actualites_btn.addEventListener(MouseEvent.CLICK, onActualitesClick); 


</li>
<li class ="alt">






</li>
<li class= "">






var

 loader_mc:Loader = 

new

 Loader(); 




</li>
<li class="alt">






</li>
<li class="">






function

 onActualitesClick(e:MouseEvent):void 




</li>
<li class="alt">





</li>
<li class ="">



 

if

 (currentFrame = = 
9
){ 




</li>
<li class="alt">



     gotoAndPlay(

"profil_out"






</li>
<li class="">


   } 


</li>
<li class ="alt">



   

else

 

if

 (currentFrame = = 
33
){ 




</li>
<li class="">



       gotoAndPlay(

"portfolio_out"






</li>
<li class="alt">


    } 


</li>
<li class ="">



   

else

 

if

 (currentFrame = = 
54
){ 




</li>
<li class="alt">



       gotoAndPlay(

"stages_out"






</li>
<li class="">


   } 


</li>
<li class ="alt">



   

else

 { 




</li>
<li class= "">



      loader_mc.load(

new

 URLRequest(

"dd.swf"

)) 




</li>
<li class="alt">


        MovieClip(root).addChild(loader_mc) 


</li>
<li class ="">


 } 


</li>
<li class="alt">


}


</li>
</ol>


<hr />

9 réponses

joviper Messages postés 24 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 21 avril 2009
19 avril 2009 à 14:16
CA Y EST !!! MON PROBLEME EST RESOLU !!! Champagne virtuel pour tout le monde !
Je me suis arraché les cheveux "pour rien", c'était tout simplement (j'en ai presque honte de le dire..) :

MovieClip(root).addChildAt(loader_mc, 0)

Je pensais pourtant avoir déjà essayé la manip'...
mais c'est logique : renvoyer à la racine pour insérer le chargement dans mon chargeur prévu à cet effet et descendre le tout au plus bas (profondeur)...

Merci de m'avoir aidé en tout cas
3
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
18 avril 2009 à 19:57
Hello,

et avec addChildAt(); ???

-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
0
joviper Messages postés 24 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 21 avril 2009
18 avril 2009 à 21:18
j'ai essayé aussi, pareil que setChildIndex... je me pose vraiment des questions là.. je me demande si c'est pas un bug car je lis partout (livres+web+forums) qu'en procédant de cette manière, ça ne peut que fonctionner..
je n'ai pas d'erreur dans mon code, je suis gentil avec mon ordinateur, je n'ai jamais tué personne..!?
pourquoiiii ! :(
0
gremlins7 Messages postés 380 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 28 décembre 2009
18 avril 2009 à 21:23
Salut,
A priori, d'àpres ce que je crois comprendre du problème, normalement setChildIndex devrait fonctionner. De memoire je crois qu'une erreur de parametrage de cette fonction ne produit pas d'erreur de compilation, mais juste une erreur d'affichage. Regarde si tes params sont corrects. L'appel a cette fonction doit egalement être fait par la classe de plus au niveau...
Sinon tu peut aussi essayer avec swapChildrenAt.
0

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

Posez votre question
joviper Messages postés 24 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 21 avril 2009
19 avril 2009 à 11:35
Merci.

Par contre, je suis débutant en la matière, et je ne comprends pas "doit être la classe de plus au niveau"..c'est-à-dire, chargée la première ?
Je me dis du coup que j'ai peut-être mal positionné le setChildIndex dans mon code, ou tout au moins pas dans les règles...car toujours rien avec swapChildren() et swapChildrenAt().

et sur l'aide, ils indiquent de les utiliser en public function, alors que jusqu'à maintenant, je n'en ai pas du tout utilisé (ni même de package d'ailleurs..)

je pense que j'ai besoin d'un rappel à l'ordre en bon français (pas le genre d'explication d'Adobe..car je ne comprends par grand chose, d'ailleurs, heureusement qu'il y a des forums !)
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
19 avril 2009 à 15:22
MovieClip(root) revient à faire "root", voir "stage" ... et c'est moins barbare comme écriture.

Peg'
0
joviper Messages postés 24 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 21 avril 2009
19 avril 2009 à 15:48
ben en fait ça ne fonctionne pas avec root tout seul, il me met un message d'erreur..je suppose qu'il faut le justifier. Je n'ai pas à le faire avec MovieClip(root). Mais c'est sûr que ça a l'air plus propre avec root seul. Mais vu la propreté de mon code actuel...! lol
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
19 avril 2009 à 15:52
Tu n'as pas testé avec "stage" ...

Peg'
0
joviper Messages postés 24 Date d'inscription vendredi 1 juin 2007 Statut Membre Dernière intervention 21 avril 2009
21 avril 2009 à 09:05
promis je testerai pour voir.
merki
0
Rejoignez-nous