Grazie Nicolas,
ho utilizzato la tua guida. Però ho ancora dei problemi.
ho modificato il mio codice come segue:
codice:
function move(obj){
if(p < position){
clearTimeout(t);
return;
}
p -= 5;
obj.style.left = p+'px';
t = setTimeout( function(){ move(obj) }, 30 );
}
function gc(type){
//seleziono random seme e numero
do{
seme=Math.floor(Math.random()*imgg.length);
num=Math.floor(Math.random()*imgg[seme].length);
}while(imgg[seme][num]=="null");
str="carta"+num_c;
el=document.getElementById(str);
el.src=imgg[seme][num];
el.style.visibility='visible';
imgg[seme][num]="null";
//position indica a quale distanza dal bordo sinistro andrà la carta
//se type=1 allora si tratta della carta del banco
if(type==1){
el.style.top='50px';
position=bp;
}
//altrimenti è la carta del giocatore
else{
el.style.top='350px';
position=pp;
}
//sposto la carta
p=parseInt(el.style.left);
setTimeout(function(){
el=document.getElementById(str);
move(el);
},100);
if(type==1)
bp+=100;
else
pp+=100;
//calcolo punteggio del giocatore o del banco
if(type==1){
b=b+assegna_valore(num);
el=document.getElementById('banco');
el=el.firstChild;
el.nodeValue=b;
}
else{
g=g+assegna_valore(num);
el=document.getElementById('player');
el=el.firstChild;
el.nodeValue=g;
}
}
Ho tre immagini (ad esempio A-B-C) e volevo fare in modo che due si spostassero. "B" andando a distanza 100px "C" a 200 px dal margine sinistro.
Con le modifiche che ho fatto però ho ottenuto che "B"si spostasse. Inoltre si ferma a 200px dal margine sinistro anzichè 100 come dovrebbe.
"C" invece non si sposta proprio.
Sto cercando di capire il motivo.
Ho sbagliato nell'utilizzo della setTimeot?