Recherche code mc passe sur un autre mc puis change change

[Résolu]
Signaler
Messages postés
66
Date d'inscription
mercredi 7 septembre 2005
Statut
Membre
Dernière intervention
28 mai 2010
-
Messages postés
66
Date d'inscription
mercredi 7 septembre 2005
Statut
Membre
Dernière intervention
28 mai 2010
-
Bonjour à tous,
Je me confronte à petit soucis. Voilà, j'ai beau eu chercher sur tous les forums mais rien. Je vous expose mon problème : j'ai une bande d'image qui deffile en boucle l'orsque l'on clique sur un bouton. Le truc que je voudrais faire, est que lorsqu'une image de la bande passe au milieu de scène, quelle prenne un autre aspect. Je voudrais un code qui dise que l'orsque qu'un mc passe sur ou sous une zone que ça déclanche un code.
Voilà comment j'imgine le code :
if ( btn[i]. passe dans la zone "a"){
btn[i]._xscale = 120
btn[i]._ysacle = 120
}

mais je ne trouve pas de solution. Je vous mets tout mon code ci dessous
sur la premiere image j'ai deux boutons :
btnD.onRollOver = function() {
    gotoAndStop(2);
};
btnD.onRollOut = function() {
    gotoAndStop(1);
};
btnG.onRollOver = function() {
    gotoAndStop(2);
};
btnG.onRollOut = function() {
    gotoAndStop(1);
};
stop();

et sur l'image deux j'ai un mc_controller sur lequel  il y a :
onClipEvent (load) {
    buteegauche = -227;
    buteedroite = 996;
    largeurbande = 1230;
    nombretotalcarres = 21;
    speed = 20;
    //btnx = "_root.menu.btn"+i;
}
onClipEvent (enterFrame) {
    decalagex = (_root._xmouse-380)/speed;
    for (i=1; i<nombretotalcarres+1; i++) {
        //trace("_root.menu.btn"+i);
        cible = "_root.menu.btn"+i; // ça c ma bande d'image composée de 21 mc nommé btn1,2....
        eval(cible)._x -= decalagex;
        if (eval(cible)._xbuteedroite) {
            eval(cible)._x -= largeurbande;
        }
    }
}
Si quelqu'un connait un tuto ou le code pour dire un truc comme ça :
monMc.surMonMc2 = function   (){}
ou
if ( btn[i]. _x=600){

btn[i]._xscale = 120

btn[i]._ysacle = 120

}
Il est le bienvenue
Merki
Nackdawa

5 réponses

Messages postés
1203
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
Oups,

c'est de ma faute... erreur dans la façon de cibler les clips btn
Essaye comme ceci :

onClipEvent (load) {
    buteegauche = -227;
    buteedroite = 996;
    largeurbande = 1230;
    nombretotalcarres = 21;
    speed = 20;
    //btnx = "_root.menu.btn"+i;
}




onClipEvent (enterFrame) {
    decalagex = (_root._xmouse-380)/speed;
    for (i=1; i<nombretotalcarres+1; i++) {
        cible = _root.menu["btn"+i];
        cible._x -= decalagex;
        var PosX=cible._x
        if (PosXbuteedroite) {
            cible._x -= largeurbande;
        }
        if (PosX>580 && PosX<620) {
            trace("_root.menu.btn"+i);
            cible._xscale = 120-Math.abs(600-PosX);
        } else {
            cible._xscale = 100;
        }
        cible._yscale = cible._xscale;
    }
}



@+
Messages postés
66
Date d'inscription
mercredi 7 septembre 2005
Statut
Membre
Dernière intervention
28 mai 2010

Me revoilà ;)
Je reviens car il y a une toute petite erreure dans le code, ce que ne produit plus de boucle. C'est juste une petit oublis de "eval". Donc ce qui donne :
onClipEvent (load) {
   onClipEvent (load) {
    buteegauche = -437.5;
    buteedroite = 1207.6;
    largeurbande = 1655;
    nombretotalcarres = 27;
    speed = 15;
    //btnx = "_root.menu.btn"+i;
    //btnx = "_root.menu.btn"+i;
}
onClipEvent (enterFrame) {
    decalagex = (_root._xmouse-380)/speed;
    for (i=1; i<nombretotalcarres+1; i++) {
        cible = _root.menu["btn"+i];
        cible._x -= decalagex;
        var PosX = cible._x;
        if (PosXbuteedroite) {
            eval(cible)._x -= largeurbande;
        }
        if (PosX>580 && PosX<620) {
            cible._xscale = 150-Math.abs(600-PosX);
        } else {
            cible._xscale = 100;
        }
        cible._yscale = cible._xscale;
    }
}
Et voilou....
Bonne journée a toi girou ;)
Nackdawa
Messages postés
1203
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
Salut,

Ta solution en fonction de la position du clip est bonne, sauf qu'il vaut mieux préciser une plage de pixels pour être sur que l'agrandissement ai lieu (juste 600 c'est court, si le clip est a 600,5 -> pas d'agrandissement)

if ( btn[i]. _x>580 && btn[i]. _x<620){
   btn[i]._xscale = 120-Math.abs(600-btn[i]._x) // complication de la formule pour un mouvement plus progressif niveau taille ...
   btn[i]._yscale =btn[i]._xscale
}else{
   btn[i]._xscale = 100
   btn[i]._yscale =btn[i]._xscale
}

@+
Messages postés
66
Date d'inscription
mercredi 7 septembre 2005
Statut
Membre
Dernière intervention
28 mai 2010

Merci de ta réponse, mais je n'arrive pas à l'intégrer dans mon code. ça ne provoque rien. Je t'explique ce que j'ai essayer de faire si tu voix ou est mon erreur.
_1
j'ai essayer sur un image clée séparer du code clipEvent
donc :
if ( _root.menu.btn[i]. _x>580 && btn[i]. _x<620){
  _root.menu.btn[i]._xscale
= 120-Math.abs(600-btn[i]._x) // complication de la formule pour
un mouvement plus progressif niveau taille ...
_root.menu.btn[i]._yscale =btn[i]._xscale
}else{
_root.menu.btn[i]._xscale = 100
  _root.menu.btn[i]._yscale =btn[i]._xscale
}
//------------------------------------
_root.menu.btn[i] : ce sont les MC dans mon clip menu
ça ne marche pas

_2
j'ai essayer de le mettre dans le onClipEvent
ionClipEvent (load) {
    buteegauche = -227;
    buteedroite = 996;
    largeurbande = 1230;
    nombretotalcarres = 21;
    speed = 20;
    //btnx = "_root.menu.btn"+i;
}
onClipEvent (enterFrame) {
    decalagex = (_root._xmouse-380)/speed;
    for (i=1; i<nombretotalcarres+1; i++) {
        //trace("_root.menu.btn"+i);
        cible = "_root.menu.btn"+i;
        eval(cible)._x -= decalagex;
        if (eval(cible)._xbuteedroite) {
            eval(cible)._x -= largeurbande;
        }
        if (_root.menu.btn[i]._x>580 && _root.menu.btn[i]._x<620) {
            trace("_root.menu.btn"+i);
            _root.menu.btn[i]._xscale = 120-Math.abs(600-btn[i]._x);
            // complication de la formule pour un mouvement plus progressif niveau taille ...
            _root.menu.btn[i]._yscale = btn[i]._xscale;
        } else {
            _root.menu.btn[i]._xscale = 100;
            _root.menu.btn[i]._yscale = btn[i]._xscale;
        }
    }
}

marche pas non plus

et j'ai aussi de le mettre dans le clip menu directement:

if ( btn[i]. _x>580 && btn[i]. _x<620){
   btn[i]._xscale
= 120-Math.abs(600-btn[i]._x) // complication de la formule pour
un mouvement plus progressif niveau taille ...
   btn[i]._yscale =btn[i]._xscale
}else{
   btn[i]._xscale = 100
   btn[i]._yscale =btn[i]._xscale
}
marche pas non plus
 help me, je ne suis pas coder à la base...mes webdesigner

nackdawa
Messages postés
66
Date d'inscription
mercredi 7 septembre 2005
Statut
Membre
Dernière intervention
28 mai 2010

Ouehh !!! meci beaucoup Girou, celà onction a la perferction. Encore merci
Nackdawa