Une vitesse

Résolu
Signaler
Messages postés
102
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
8 septembre 2006
-
Messages postés
606
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
13 décembre 2006
-
slt

mon prob. j'ai 2 clip : un en arriere plan et l'autre dessus, j'ai fait que quand on clic sur l'arriere plan l'autre clip va la où on a cliquer. Mais je veut que le clip qui doit se deplacer le fasse qu'a une certaine vitesse et pas d'un seul coup.

le code de l'arriere plan :

onClipEvent (mouseDown) {
_root.head._x = _xmouse;
_root.head._y = _ymouse;
}

head : le clip qui doit se deplacer

merci

olivier

9 réponses

Messages postés
102
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
8 septembre 2006

g demmander a bombay
il m'a dit autre chose et sa marche :

onClipEvent (mouseDown) {
// mémorisation des coordonées de la souris dans le repere principal ( _root). Ce sont les coordonées du point cible
xmouse =_root._xmouse;
ymouse =_root._ymouse;
}
// evenement onEnterFrame d'un MovieClip : execution en boucle autant de fois par secondes que le FPS de l'anim
onClipEvent (enterFrame) {
// on ajoute 1/5 du chemin qui reste a parcourir en _x et _y entre la position du clip et le point cible
_x+=( xmouse - _x)/5;
_y+=( ymouse - _y)/5;
}

olivier
Messages postés
606
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
13 décembre 2006

Utilise setInterval()
Messages postés
102
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
8 septembre 2006

je n'ai pas compris comment l'utiliser !

olivier
Messages postés
606
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
13 décembre 2006

Ca te permet d'appeler une fonction a intervalle
regulier, donc l'idée c que tu appelle une fonction toutes les 20
millisecondes par exemple (cette fonction deplacant le clip d'une
petite distance). Allez je suis gentil j te fais le code :




onClipEvent (mouseDown) {
xsouris = _xmouse; //on memorise les positions de la souris
ysouris = _ymouse;
D = setInterval("deplacement", 20); //appelele la fonction totues les 20 millisecondes



function deplacement() {

if ( _root.head._x xsouris) && ( _root.head._y ysouris) { //si on atteint la position d'aiirivée


clearInterval(D); //on arrete le deplacement, vérifie dans l'aide
parce que je suis pas sur de la syntaxe

else {

//ben la deplacement, du style

if (
_root.head._x > xsouris) {


_root.head._x -(xsouris-_root.head._x) /100; // avec 100 20*5
donc 5 secondes pour deplacer le clip

}


if (
_root.head._x < xsouris) {

_root.head._x +=
(xsouris-_root.head._x)
/100;

}


//et la meme chose pour y, je te laisse faire


}
Messages postés
102
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
8 septembre 2006

Sa marche pas du tout, j'ai corriger les erreurs comme } et fni le reste mais sa ne bouge pas

olivier
Messages postés
606
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
13 décembre 2006

Ben fais d trace pour savoir a quel nivo ca marche pa : si c le setInterval ou alors dan la fonction deplacement.....
Messages postés
102
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
8 septembre 2006

je croi que j'ai un beug le tout premier code

onClipEvent (mouseDown) {
_root.head._x = _xmouse;
_root.head._y = _ymouse;
}

fait chez moi que l'image ne va pas sur la souris mes n'importe où !!!!!!!!!!!!
Messages postés
606
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
13 décembre 2006

Mais elle bouge bien quand meme ? Si c le cas essaie avec ca :

onClipEvent (mouseDown) {
_root.head._x = _root._xmouse;
_root.head._y = _root._ymouse;
}
Messages postés
606
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
13 décembre 2006

Ben oui il y a souvent plusieurs solutions pour faire un truc. Ceci dit
ma solution est meilleure parce que un onEnterFrame c appelé tout le
temps (dans ton cas une fois que ton clip est à la bonne place il bouge
plus, mais le onEnterFrame est toujours appelé) alors que setInterval
n'est appelé que le nombre de fois voulu. De manière générale j'essaie
d'éviter d'utiliser des enterFrame parce que c souvent très lourd.

Par contre tu pourrais peut etre utiliser delete pour optimiser...