Recherche code mc passe sur un autre mc puis change change

Résolu
nackdawa Messages postés 66 Date d'inscription mercredi 7 septembre 2005 Statut Membre Dernière intervention 28 mai 2010 - 6 sept. 2007 à 09:44
nackdawa Messages postés 66 Date d'inscription mercredi 7 septembre 2005 Statut Membre Dernière intervention 28 mai 2010 - 6 sept. 2007 à 15:41
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

cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
6 sept. 2007 à 13:26
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;
    }
}



@+
3
nackdawa Messages postés 66 Date d'inscription mercredi 7 septembre 2005 Statut Membre Dernière intervention 28 mai 2010
6 sept. 2007 à 15:41
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
3
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
6 sept. 2007 à 10:23
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
}

@+
0
nackdawa Messages postés 66 Date d'inscription mercredi 7 septembre 2005 Statut Membre Dernière intervention 28 mai 2010
6 sept. 2007 à 10:54
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nackdawa Messages postés 66 Date d'inscription mercredi 7 septembre 2005 Statut Membre Dernière intervention 28 mai 2010
6 sept. 2007 à 14:55
Ouehh !!! meci beaucoup Girou, celà onction a la perferction. Encore merci
Nackdawa
0
Rejoignez-nous