Fonction sur objet dupliqué avec attachmovie

Résolu
zemele Messages postés 119 Date d'inscription vendredi 29 juillet 2005 Statut Membre Dernière intervention 26 novembre 2009 - 7 juin 2008 à 17:12
zemele Messages postés 119 Date d'inscription vendredi 29 juillet 2005 Statut Membre Dernière intervention 26 novembre 2009 - 10 juin 2008 à 07:36
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

Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
7 juin 2008 à 19:31
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+
3
zemele Messages postés 119 Date d'inscription vendredi 29 juillet 2005 Statut Membre Dernière intervention 26 novembre 2009
8 juin 2008 à 08:00
Merci ça fonctionne, mais je ne comprend pas pourquoi... Tu peux m'expliquer  ?
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
9 juin 2008 à 18:41
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
0
zemele Messages postés 119 Date d'inscription vendredi 29 juillet 2005 Statut Membre Dernière intervention 26 novembre 2009
10 juin 2008 à 07:36
Ok c'est plus claire, merci
0
Rejoignez-nous