Un petit code valant mieux qu'un grand discours, voici le code
Code : Tout sélectionner
function collision(obj)
{
var fils = document.getElementById("vacation").childNodes;
var nb_fils = fils.length;
var a_x=0;
var a_y=0;
var a_w=0;
var a_h;
var b_x=parseInt(obj.offsetLeft);
var b_y=parseInt(obj.offsetTop);
var b_w=parseInt(obj.offsetWidth);
var b_h=parseInt(obj.offsetHeight);
var test=null;
for(var i =(nb_fils-1) ; i>=0;i--)
{
if(fils[i].getAttribute("ID")!=obj.id)
{
test=el(fils[i].getAttribute("ID"));
a_x=parseInt(test.offsetLeft);
a_y=parseInt(test.offsetTop);
a_w=parseInt(test.offsetWidth);
a_h=parseInt(test.offsetHeight);
//collision de rectangle simple haut bas droite gauche
//simplifiée par la hauteur qui est fixe
//collision de hauteur
if(a_y==b_y)
{
//collision largeur collision de A sur b
if(a_x>b_x)
{
if(a_x<(b_x+b_w)){return true;}//gauche
} else
if((a_x+a_w)>b_x )
{
if((a_x+a_w)<(b_x+b_w)){return true;}//droite
}
//collision largeur collision e b sur a
if(b_x>a_x)
{
if(b_x<(a_x+a_w)){return true;}//gauche
} else
if((b_x+b_w)>a_x )
{
if((b_x+b_w)<(a_x+a_w)){return true;}//droite
}
}
}
}
return false;
}
la function est un truc tout bête de collision de boite, peu importe.
le probleme c'est que ie me met une erreur javascript sur
var b_x=parseInt(obj.offsetLeft); (sur offsetLeft plus précisement !)
chose plutot étrange, étant donné que ca marche quand même. Et sous FF et son excelent deboggeur, je n'ai rien. Quelqu'un aurait une explication ?
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 6.0; fr; rv:1.8.1.9) Gecko/20071025 Firefox/2.0.0.9