03-04-2008, 06:04 PM
Code :
function deplacer_enligne(id,x2,y2)
{
img = document.getElementById(id);
// on récupere la valeur du margin left de l'image
var margin_Left = img.style.marginLeft;
// le probleme c'est qu'elle renvoie pas un nombre mais du texte sous forme "42px", donc on va recupérer les chiffre et virer les px avec la fonction split de javascript (qui permet de diviser une phrase) dans un tableau (parce que la fonction split renvoie un tableau)
var tab = margin_Left.split("px");
// et maintenant on récupere la vraie valeur qui se trouve dans notre tableau
margin_Left = parseInt(tab[0]); // dans le cas présent il renvoie 10
// la fonction parseInt est obligatoire pour que l'addition ensuite addition deux nombre sinon il va les concaténer
var margin_Top = img.style.marginTop;
tab = margin_Top.split("px");
margin_Top = parseInt(tab[0]);
if(Math.abs(margin_Left - x2)>12)
{
if(margin_Left < x2) margin_Left = margin_Left+10;
else margin_Left = margin_Left-10;
img.style.marginLeft = margin_Left+'px';// on met à jour le style de l'image pour le "téléporter"
}
if(Math.abs(margin_Top - y2)>7)
{
if(margin_Top < y2) margin_Top = margin_Top+5;
else margin_Top = margin_Top -5;
img.style.marginTop = margin_Top+'px';// on met à jour le style de l'image pour le "téléporter"
}
if(margin_Left != x2 || margin_Top != y2)
{
setTimeout('deplacer_enligne("'+id+'", '+x2+', '+y2+');', 25);
}
}
Oui, voila mon code, ben j'ai essayé de retardé l'appel à ma seconde fonction, mais ça marche toujours pas. Donc le but c'est d'appeller 2 fois cette fonction
Code :
deplacer_enligne(id,0,0);
deplacer_enligne(id,1000,0);
Si vous arrivez à faire déplacer le perso correctement, je vous donne une glace :glace: