PDA

View Full Version : [JS] Spostare un livello con animazione (setTimeout non funziona???)


XSonic
19-02-2007, 01:30
Stato: Risolto al post #2 :D
Altro problema al post #5

Dopo una giornata di ricerche (eh... sono le 2 :rolleyes: ) rieccomi di nuovo sul forum.

Dovrebbe essere una cosa semplicissima ma...
http://img502.imageshack.us/img502/2385/untitled2kz2.gif (http://img502.imageshack.us/my.php?image=untitled2kz2.gif)
Dovrei solo spostare un livello da un punto ad un altro -pixel per pixel-, cioè come si vede nella gif sopra

Ho fatto questa funzione ma setTimeout non rispetta il tempo!!! :eek:
function move(){ //muovi di un pixel il div "logo"
document.getElementById("logo").style.left = i+"px"; //muove "logo" alla posizione i
i++;
if (i<200) //se non è arrivato a destinazione...
setTimeout(move(),100); //riesegui ogni 0.1s
}
Il risultato è che mi ritrovo "logo" a destinazione senza animazione, cioè lo fa all'istante senza rispettare setTimeout(move(),100);



PS: Fireworks fa schifo nella creazione di GIF di peso ridotto :muro:

andbin
19-02-2007, 08:52
setTimeout(move(),100); //riesegui ogni 0.1s[/CODE]C'è un errore: non devi mettere le () nell'argomento di setTimeout.
Avendo messo le () tu hai chiamato la funzione move in modo ricorsivo. Lo scorrimento non avviene perché facendo la ricorsione, incrementi in effetti il valore di 'i' ma blocchi il thread (Javascript è single-thread). Solo quando tutta la catena di ricorsione finisce, allora la finestra viene aggiornata. Ma a quel punto i è già al massimo valore possibile, quindi lo spostamento è immediato.

XSonic
19-02-2007, 09:48
GRAZIE! (link ad un esempio temporaneo (http://bayxsonic.hotelteti.com/AS%20Project.html))

Mi dici dove hai imparato tutte queste cose? Esperienza o manuali ben fatti? (entrambi? :D )
Sto leggendo il secondo manuale che ho trovato su HTML.it ma ci sono sempre le stesse cose base... :rolleyes: dove potrei trovare un manuale un po' più approfondito con/e una lista degli oggetti JS?

andbin
19-02-2007, 09:58
Mi dici dove hai imparato tutte queste cose? Esperienza o manuali ben fatti? (entrambi? :D )Esperienza, studio e sopratutto facendomi sempre un mazzo tanto ....

Sto leggendo il secondo manuale che ho trovato su HTML.it ma ci sono sempre le stesse cose base... :rolleyes: dove potrei trovare un manuale un po' più approfondito con/e una lista degli oggetti JS?Su Javascript (e in generale il DOM) trovi parecchia roba, questi sono solo alcuni link:

- http://developer.mozilla.org
- http://www.devguru.com/Technologies/ecmascript/quickref/javascript_index.html
- http://www.irt.org/script/script.htm

XSonic
19-02-2007, 10:11
:cincin: Grazie!
Interessante il secondo! Quello che cercavo! :eek:

Te dove hai studiato i linguaggi che conosci? Scuola, internet, libri?

EDIT: vedo che hai studiato dai libri... :D

EDIT: provando ad usare uno script per modificare la trasparenza degli oggetti ho ottenuto buoni risultati, solo che su IE scompare l'antialiasing addirittura sul testo
In ordine: FF, IE7 e IE6 (di IE6 sapevo già che non supportava la trasparenza delle PNG, sta cosa del testo però..)
http://img522.imageshack.us/img522/1226/ffsiienofu8.th.jpg (http://img522.imageshack.us/my.php?image=ffsiienofu8.jpg)
http://img508.imageshack.us/img508/2928/ie6lo0.th.jpg (http://img508.imageshack.us/my.php?image=ie6lo0.jpg)

XSonic
09-04-2007, 22:30
Aiutino?