Déplacement d'un objet suivant la souris

Résolu
cha9chi Messages postés 13 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 20 février 2010 - 29 août 2008 à 13:23
cha9chi Messages postés 13 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 20 février 2010 - 29 août 2008 à 20:42
salut a tout le monde....voila, mon probleme c que je n'arriver pas a appliquer se scripte a un objet que j'ai crée sans script!!!est ils possible???
si vous essai de remplacer la cercle "DrawCircle" par un objet que vous aver crée sa ne marche jamais :'(merci de m'aider :)
le script :

MovieClip.prototype.DrawCircle=function(x,y,r){
    this.moveTo(x+r,y);
    this.beginFill("0xFBFFA4",100);
    for(var t=0;t<Math.PI*2;t+=.5){
        this.lineTo(x+r*Math.cos(t),y+r*Math.sin(t));
        }
    this.endFill();
    }
FindAngle = function (x1, x2, y1, y2) {
    return Math.atan2(y2-y1, x2-x1);
    };
Distance=function(x1,x2,y1,y2){
    return Math.sqrt(Math.pow(x2-x1,2)+Math.pow(y2-y1,2));
}
Interpolate=function(x1,y1,x2,y2,n){
    var dist= Distance(x1,x2,y1,y2);
    var ang = FindAngle(x1,x2,y1,y2);
    var points = [];
    for(var l = 0;l<=dist;l+=dist/n){
        var x =x1+l*Math.cos(ang);
        var y = y1+l*Math.sin(ang);
        points.push({x:x,y:y});
        }
    return points;
    }
DrawNodes=function(array){
    _root.createEmptyMovieClip("line",1).lineStyle(1,0xFFFFFF,40);
    line.moveTo(array[0].x,array[0].y);
    for(var i = 1; i<array.length-1;i++){
        line.lineTo(array[i].x,array[i].y);
    }
    line.DrawCircle(array[array.length-2].x,array[array.length-2].y,5);
}
currentnodes=gotonodes=Interpolate(275,0,_xmouse,_ymouse,15);
onMouseMove=function(){
    gotonodes=Interpolate(275,0,_xmouse,_ymouse,15);
    }
onEnterFrame=function(){
    for(var node in gotonodes){
        currentnodes[node].x=currentnodes[node].x+(gotonodes[node].x-currentnodes[node].x)/(node*node/30+1);
        currentnodes[node].y=currentnodes[node].y+(gotonodes[node].y-currentnodes[node].y)/(node*node/30+1);
        }
    DrawNodes(currentnodes);
    }

9 réponses

pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
29 août 2008 à 16:31
pas besoin de déterminer la distance de déplacement de la souris, il suffit juste de récupérer ses coordonnées et de faire un simple calcul des 5 points voulus .. de simples maths et un onMouseMove feront très bien l'affaire ...

Peg'
Ps: ou un MouseEvent:MOUSE_MOVE, pour ceux qui comprennent l'AS3
3
cha9chi Messages postés 13 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 20 février 2010
29 août 2008 à 13:27
slt,loool,j'ai plein de probleme et de question s en flash , je pence que je tombe sur le bon site:):):):)!!!
bon le deuxieme c'est que je veut de tecter la position de la souris en 2 lieux!plus precisament!!quand je bouge la souris je veut detecter la distance qu'lle a parcourus dès le debut de l'execution!!en Gros je veut faire comme l'annimation en www.109.com.tn
0
cha9chi Messages postés 13 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 20 février 2010
29 août 2008 à 15:51
on (rollOver) {
 gotoAndPlay("s1");
}
on (rollOut) {
 gotoAndPlay("s2");
}


onClipEvent (enterFrame) {
 this._x=6.3;
 this._y=23.4;
 var dx = 225;
 var dy = 200;
 dep_xmouse =-( _xmouse-dx);
 dep_ymouse = -(_ymouse-dy);
 
 dep_xobj = dep_xmouse*0.1;
 dep_yobj = dep_ymouse*0.1;


 this._x += dep_xobj;
 this._y += dep_yobj;
 
}

se scripte j'ai appliquer a un clip que je n'arrive par a ralentire sa vitesse par rapport a la distance de la souris:'(!!!il n'applique pas le traitement  suivant a plusieur reprises :
dep_xmouse =-( _xmouse-dx);
 dep_ymouse = -(_ymouse-dy);

s'il vous plai je suis tres debutant :(
0
cs_Girou Messages postés 1203 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 23 juillet 2009 2
29 août 2008 à 15:51
Salut,

pour la distance parcourure par la souris:

var oldX:Number= this._xmouse;
var oldY:Number= this._xmouse;

this.onMouseMove=function(){
   var _mX:Number= this._xmouse;
   var _mY:Number= this._xmouse;
   var distance:Number=Math.sqrt(Math.pow(_mX-oldX,2)+Math.pow(_mY-oldY,2));
   oldX=_mX;
   oldY=_mY;
}

Pour l'autre question, j'ai pas compris...

@+
0

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

Posez votre question
cha9chi Messages postés 13 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 20 février 2010
29 août 2008 à 16:08
merci pour votre reponse :) c'est tres gentil!!
pour l'autre je n'ai pas su comment il ont fait pour deplacer les cinq images dans le site www.109.com.tn!!merci:)
0
cha9chi Messages postés 13 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 20 février 2010
29 août 2008 à 16:28
enfin :) il ne me reste que le 3eme question pour l'accomplire merci:):):):):):))))))))))
0
cha9chi Messages postés 13 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 20 février 2010
29 août 2008 à 17:59
merci  bien pegase31 :)  malheureusement je sais pas bien utiliser l'action scripte :'(!!si tu peut essayer de crée un movie clip dans votre pc et lui associer cette action script...tu verra que sa marche mais sans vitesse :'(:'(:'(:'(!!!je ne sais pas comment mettre le scripte en boucle:'(merciiiiii
0
pegase31 Messages postés 6138 Date d'inscription dimanche 21 décembre 2003 Statut Modérateur Dernière intervention 4 septembre 2013 12
29 août 2008 à 18:05
pas besoin de boucje, crée juste une fonction déclenchée par le mouvement de souris :

onMouseMove = function() {
}

Peg'
0
cha9chi Messages postés 13 Date d'inscription mercredi 19 mars 2008 Statut Membre Dernière intervention 20 février 2010
29 août 2008 à 20:42
desoler mais c'est pas pratique car quand ont arrete la souris tout le mouvement se bloque meme s'il n'a pas fini de s'executer!!merci enfin:)
0
Rejoignez-nous