JavascriptProva

venerdì 20 gennaio 2012

Un tripudio di linee colorate rotanti!!!

Fantastico!

Ecco come, con l'uso del mio oggettino linea, si possono costruire tutte le linee che si vogliono, ognuna con la propria velocità di rotazione e anche con il proprio verso, che per rendere negativo basta impostare il parametro "velocità angolare" del metodo ruota con un valore negativo:
<script>

function linea(nomeLinea,spessore,colore,orgX,orgY,lunghezza,ang){
 var nomeLinea=nomeLinea;
 var orgX=orgX;
 var orgY=orgY;
 var lunghezza=lunghezza;
 var angolo=ang;
 var velAng;
 var intervallo;
 var spessore=spessore;
 this.disegna=function(){
  for (var n=0;n<=lunghezza;n++)
  document.write("<div id='"+nomeLinea+n+"' style='font-size:1px;position:absolute;left:"+(orgX+n*Math.cos(angolo*Math.PI/180))+"px;top:"+(orgY+n*Math.sin(angolo*Math.PI/180))+"px;background-color:"+colore+";width:"+spessore+"px;height:"+spessore+"px'></div>"); 
  }  
 this.disegna.call();

 this.step=function(){
   for(var n=0;n<=lunghezza;n++){  
     document.getElementById(nomeLinea+n).style.left=orgX+n*Math.cos(angolo*Math.PI/180);
     document.getElementById(nomeLinea+n).style.top=orgY+n*Math.sin(angolo*Math.PI/180);
    }
  angolo+=velAng;

  }
  
 this.ruota=function(velocitaAngolare,tempo){ 
   clearInterval(intervallo);
  velAng=velocitaAngolare;
   intervallo=window.setInterval(function(linea) {linea.step()},tempo,this);
 }
 
}

prima=new linea("prima",1,"red",500,300,300,45);
prima.ruota(2,1);

seconda=new linea("seconda",2,"green",500,500,300,0);
seconda.ruota(5,1);

terza=new linea("terza",3,"blue",700,300,400,90);
terza.ruota(-2,1);

</script>

<body>

</body>

Nessun commento:

Posta un commento