AddChild et setChildIndex [Résolu]

Messages postés
24
Date d'inscription
vendredi 1 juin 2007
Dernière intervention
21 avril 2009
- - Dernière réponse : joviper
Messages postés
24
Date d'inscription
vendredi 1 juin 2007
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 />
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
Messages postés
24
Date d'inscription
vendredi 1 juin 2007
Dernière intervention
21 avril 2009
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 87 internautes nous ont dit merci ce mois-ci

Commenter la réponse de joviper
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Dernière intervention
2 août 2011
0
Merci
Hello,

et avec addChildAt(); ???

-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Commenter la réponse de Orange73
Messages postés
24
Date d'inscription
vendredi 1 juin 2007
Dernière intervention
21 avril 2009
0
Merci
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 ! :(
Commenter la réponse de joviper
Messages postés
380
Date d'inscription
mardi 29 avril 2003
Dernière intervention
28 décembre 2009
0
Merci
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.
Commenter la réponse de gremlins7
Messages postés
24
Date d'inscription
vendredi 1 juin 2007
Dernière intervention
21 avril 2009
0
Merci
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 !)
Commenter la réponse de joviper
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Dernière intervention
4 septembre 2013
8
0
Merci
MovieClip(root) revient à faire "root", voir "stage" ... et c'est moins barbare comme écriture.

Peg'
Commenter la réponse de pegase31
Messages postés
24
Date d'inscription
vendredi 1 juin 2007
Dernière intervention
21 avril 2009
0
Merci
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
Commenter la réponse de joviper
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Dernière intervention
4 septembre 2013
8
0
Merci
Tu n'as pas testé avec "stage" ...

Peg'
Commenter la réponse de pegase31
Messages postés
24
Date d'inscription
vendredi 1 juin 2007
Dernière intervention
21 avril 2009
0
Merci
promis je testerai pour voir.
merki
Commenter la réponse de joviper

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.