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

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

9 réponses

Meilleure réponse
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 141 internautes nous ont dit merci ce mois-ci

Commenter la réponse de pegase31
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010
0
Merci
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
Commenter la réponse de cha9chi
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010
0
Merci
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 :(
Commenter la réponse de cha9chi
Messages postés
1204
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
23 juillet 2009
2
0
Merci
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...

@+
Commenter la réponse de cs_Girou
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010
0
Merci
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:)
Commenter la réponse de cha9chi
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010
0
Merci
enfin :) il ne me reste que le 3eme question pour l'accomplire merci:):):):):):))))))))))
Commenter la réponse de cha9chi
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010
0
Merci
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
Commenter la réponse de cha9chi
Messages postés
6161
Date d'inscription
dimanche 21 décembre 2003
Statut
Modérateur
Dernière intervention
4 septembre 2013
6
0
Merci
pas besoin de boucje, crée juste une fonction déclenchée par le mouvement de souris :

onMouseMove = function() {
}

Peg'
Commenter la réponse de pegase31
Messages postés
13
Date d'inscription
mercredi 19 mars 2008
Statut
Membre
Dernière intervention
20 février 2010
0
Merci
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:)
Commenter la réponse de cha9chi