JavascriptProva

domenica 15 gennaio 2012

Semplifichiamo il codice contorto per il pallone che rimbalza...

Bene.
Sto sgrossando un po' la mia cultura rudimentale in JavaScript, e scopro sempre di aver trovato soluzioni idiote per problemi che, conoscendo meglio il linguaggio, si possono risolvere in modo molto più elegante e funzionale!

Ecco un codice molto migliore per far rimbalzare un oggetto:
<script>
var intervallo;
var intX=5;
var intY=5;
function step(oggetto) {
 var str=oggetto.style.left;
 var nLeft=Number(str.replace("px",""));
       
 var str=oggetto.style.top;
 var nTop=Number(str.replace("px",""));

 if ((nLeft>800)||(nLeft<10))
  intX=-intX;
 if ((nTop>500)||(nTop<10))
  intY=-intY;

 oggetto.style.left=nLeft+intX;
 oggetto.style.top=nTop+intY;
}

 
function muovi(oggetto,tempo){
 clearInterval(intervallo);
 intervallo=setInterval(function() {step(oggetto)},tempo);

} 
</script>
<body onClick="muovi(document.getElementById('testo'),10)">
<img id="testo" src="pallone.gif" style="left:10px;top:50px;width:50px;height:50px;position:absolute" />
</body>

Il problema è che devo usare variabili globali, e questo mi crea grossi problemi per creare multipli oggetti in movimento!
Ho fatto un po' di ricerche e un po' di ragionamenti, che mi hanno condotto a un certo argomento...

Nessun commento:

Posta un commento