JavascriptProva

martedì 17 gennaio 2012

Aggiunta di argomenti ai metodi: i limiti dello spazio di movimento come parametri esterni all'oggetto.

Ecco forniti come parametri esterni anche i limiti del campo in cui rimbalzano le palle!
<script>
function oggetto(nome){
  var MioNome=nome;
 
 var Sinistra=Number((document.getElementById(MioNome).style.left).replace("px",""));
 var Alto=Number((document.getElementById(MioNome).style.top).replace("px",""));
 var Larghezza=Number((document.getElementById(MioNome).style.width).replace("px",""));
 var Altezza=Number((document.getElementById(MioNome).style.height).replace("px",""));
 var Intervallo;
 var dirX="destra", dirY="alto"
  this.step=function(intX,intY,limX,limY){
  
  if(Sinistra>limX)
   dirX="sinistra";
  if(Sinistra<0)
   dirX="destra" 
  if(dirX=="sinistra")
   intX=-intX;
  if(dirX=="destra")
   intX=intX;

  if(Alto>limY)
   dirY="alto";
  if(Alto<0)
   dirY="basso" 
  if(dirY=="alto")
   intY=-intY;
  if(dirX=="basso")
   intY=intY;

    Sinistra+=intX
  Alto+=intY
    document.getElementById(MioNome).style.left=Sinistra;
  document.getElementById(MioNome).style.top=Alto;
  }
 
 this.muovi=function(tempo, intX, intY, limX, limY){
  clearInterval(Intervallo);
  Intervallo=window.setInterval(function(oggetto){oggetto.step(intX, intY, limX, limY)},tempo,this);
 }
 this.inter=function(){
  clearInterval(Intervallo);
 }
  
}
function crea(){
  for(var n=0;n<document.getElementsByTagName("img").length;n++)
   {
    var DivId=document.getElementsByTagName("img")[n].id;
    window[DivId] = new oggetto(DivId);
   }
 
}


function clic(e){
 
  window[e.currentTarget.id].muovi(1,1,1,1200,100);
}

function over(e){
 window[e.currentTarget.id].inter();
}


</script>
<body onLoad="crea();">
<img id="ciccio" style="width:50px;height:50px;position:absolute;top:0px" src="pallone.gif" onClick="clic(event)" onMouseOver="over(event)">
<img id="pippo" style="width:50px;height:50px;position:absolute;top:100px" src="pallone.gif" onClick="clic(event)" onMouseOver="over(event)">
<img id="mimmo" style="width:50px;height:50px;position:absolute;top:200px" src="pallone.gif" onClick="clic(event)" onMouseOver="over(event)">
</body>
Il codice nuovo è marcato in verde.
In questo caso, costringo le palle a muoversi entro uno spazio ristretto, quasi un "tubo"!

Nessun commento:

Posta un commento