Fonction sur objet dupliqué avec attachmovie

Résolu
Messages postés
119
Date d'inscription
vendredi 29 juillet 2005
Statut
Membre
Dernière intervention
26 novembre 2009
-
Messages postés
119
Date d'inscription
vendredi 29 juillet 2005
Statut
Membre
Dernière intervention
26 novembre 2009
-
Bonjour,

Je début en actionscript.

Voici mon code :

//Function créer dupliquer une occurence à chaque noeud

function CreerMenu (bouton){

   

    /* on ajoute chaque personne au textarea*/

     for (var i = 0; i < bouton.length; i++) {

       

        //On créée une occurence de l'objet

        var duplicate:MovieClip = _root.attachMovie("boutonMenu", "boutonManu"+i, i);

   

        duplicate._y = i*duplicate._height;

        duplicate._x = 30;

       

        //On lui assigne la valeur text du xml

       

        duplicate.BoutonMenuTextClip.boutonMenuTexte.text = bouton[i].attributes.name;

       

        duplicate.useHandCursor = true;

   

        duplicate.onRollOver = function() {

           

            duplicate.play();

       

        };   

        duplicate.onRollOut = function() {

           

            duplicate.gotoAndStop(1);

        };   

   

    }

}

Vous avez compris, je tente de faire un menu dynamique... (j'ai enlever la partie xml pour éviter d'alourir).

Mon problème se situe sur le "onRollOver", quand je teste, l'anim se déclanche que sur un bouton (le dernier), et cela en passant la souris sur tous les boutons.
Je souhaite que l'anim s'effectue sur chaque bouton.

Voyez vous mon erreur ?

Merci.

4 réponses

Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

Hello,

dans la partie de ton code , en rouge:

duplicate.onRollOver = function() {

duplicate.play();

};   

duplicate.onRollOut = function() {

duplicate.gotoAndStop(1);

};   

A remplacer par :

this.play();

this.gotoAndStop(1);

A+
Messages postés
119
Date d'inscription
vendredi 29 juillet 2005
Statut
Membre
Dernière intervention
26 novembre 2009

Merci ça fonctionne, mais je ne comprend pas pourquoi... Tu peux m'expliquer  ?
Messages postés
1375
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

Hello,

si tu met :
duplicate.onRollOver = function() {

duplicate.play();

};
 
flash comprend qu'il doit jouer un clip nommé "duplicate" dans ton clip "duplicate" alors que si tu met "this" cela fait reference au clip sur lequel tu applique le onRollOver
Messages postés
119
Date d'inscription
vendredi 29 juillet 2005
Statut
Membre
Dernière intervention
26 novembre 2009

Ok c'est plus claire, merci