Déplacement d'un objet suivant la souris [Résolu]

Signaler
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010
-
cha9chi
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010
-
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

Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6
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
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010

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
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010

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 :(
Messages postés
1204
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
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...

@+
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010

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:)
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010

enfin :) il ne me reste que le 3eme question pour l'accomplire merci:):):):):):))))))))))
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010

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
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6
pas besoin de boucje, crée juste une fonction déclenchée par le mouvement de souris :

onMouseMove = function() {
}

Peg'
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010

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:)