JavascriptProva

sabato 14 gennaio 2012

Eliminazione del problema dei setInterval multipli

...che poi è una fesseria quello che ho fatto ieri, di usare il parametro direzione quando la stessa cosa può essere ottenuta usando gli intervalli negativi!

Ricostruiamo daccapo tutto il codice per muovere un oggetto, preoccupandoci soltanto dopo dell'incapsulamento e della creazione di funzioni di uso generale...


Per cominciare, ho risolto il problema della creazione di nuovi intervalli a ogni click del mouse, che accelera sempre di più il movimento dell'oggetto ogni volta che si esegue l'evento che avvia la funzione.
<script>
var intervallo;
function step(oggetto,intX, intY) {
 var str=oggetto.style.left;
 var nLeft=Number(str.replace("px",""));

 oggetto.style.left=nLeft+intX;
}
function muovi(oggetto,intX,intY){
 
 clearInterval(intervallo);
 intervallo=setInterval(function() {step(oggetto,intX,intY)},1);
} 

</script>
<body onClick="muovi(document.getElementById('testo'),1,0)">
<div id="testo" style="left:0px;top:50px;width:50px;height:50px;position:absolute;background:brown"></div>
</body>

Nessun commento:

Posta un commento