AddChild et setChildIndex [Résolu]

joviper 24 Messages postés vendredi 1 juin 2007Date d'inscription 21 avril 2009 Dernière intervention - 18 avril 2009 à 18:41 - Dernière réponse : joviper 24 Messages postés vendredi 1 juin 2007Date d'inscription 21 avril 2009 Dernière intervention
- 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
joviper 24 Messages postés vendredi 1 juin 2007Date d'inscription 21 avril 2009 Dernière intervention - 19 avril 2009 à 14:16
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

Merci joviper 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de joviper
Orange73 1393 Messages postés dimanche 28 novembre 2004Date d'inscription 2 août 2011 Dernière intervention - 18 avril 2009 à 19:57
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
joviper 24 Messages postés vendredi 1 juin 2007Date d'inscription 21 avril 2009 Dernière intervention - 18 avril 2009 à 21:18
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
gremlins7 380 Messages postés mardi 29 avril 2003Date d'inscription 28 décembre 2009 Dernière intervention - 18 avril 2009 à 21:23
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
joviper 24 Messages postés vendredi 1 juin 2007Date d'inscription 21 avril 2009 Dernière intervention - 19 avril 2009 à 11:35
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
pegase31 6161 Messages postés dimanche 21 décembre 2003Date d'inscription 4 septembre 2013 Dernière intervention - 19 avril 2009 à 15:22
0
Merci
MovieClip(root) revient à faire "root", voir "stage" ... et c'est moins barbare comme écriture.

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

Peg'
Commenter la réponse de pegase31
joviper 24 Messages postés vendredi 1 juin 2007Date d'inscription 21 avril 2009 Dernière intervention - 21 avril 2009 à 09:05
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.