» »

[javascript] setTimeout

[javascript] setTimeout

kornilov ::

Pozdravljeni,
imam del kodo, ki se ponavlja. V prvem delu objekt(myGraph.drawEquation) nariše graf funkcije, v drugem delu pa objekt(myGraph.label_1) še izpiše vrednost. Vse to se trikrat ponovi zgolj s spremembo enega števila.
Uporabil sem funkcijo setTimeout, tako da posamezne dele prikaže postopoma v časovnih korakih. Za prvi graf sem uporabil zamik 0.14 sekunde, za izpis vrednosti 0.56 sekunde itd...
Se da to kodo skrajšati, bi se dalo setTimeout zapisati kot samostojno funkcijo, da se ne bi zmeraj znova in znova ponavljala? ;)

setTimeout(function() {
      myGraph.drawEquation(function(x) {				
        return 100 * Math.sin((0.1 * x * (2*Math.PI)/23) + stevilo_dni * (2*Math.PI)/23);
      }, '#FF3030', 3);		// red
}, 140);					// časovni zamik setTimeout
setTimeout(function() {
      myGraph.label_1(function(x) {
    	return 100 * Math.sin((0.1 * x * (2*Math.PI)/23) + stevilo_dni * (2*Math.PI)/23);	// izpiši vrednost Y, ko je X = 0, label_1 in drugo na canvas-u
  	  });
}, 560);					// časovni zamik setTimeout


setTimeout(function() {					
      myGraph.drawEquation(function(x) {
        return 100 * Math.sin((0.1 * x * (2*Math.PI)/28) + stevilo_dni * (2*Math.PI)/28);
      }, '#00EE00', 3);		// green
}, 280);					// časovni zamik setTimeout
setTimeout(function() {
      myGraph.label_2(function(x) {
    	return 100 * Math.sin((0.1 * x * (2*Math.PI)/28) + stevilo_dni * (2*Math.PI)/28);	// izpiši vrednost Y, ko je X = 0, label_2 in drugo na canvas-u 
      });
}, 700);					// časovni zamik setTimeout  


setTimeout(function() {
      myGraph.drawEquation(function(x) {
        return 100 * Math.sin((0.1 * x * (2*Math.PI)/33) + stevilo_dni * (2*Math.PI)/33);
      }, '#75F0F0', 3);		// blue
}, 420);					// časovni zamik setTimeout
setTimeout(function() {
      myGraph.label_3(function(x) {
    	return 100 * Math.sin((0.1 * x * (2*Math.PI)/33) + stevilo_dni * (2*Math.PI)/33);	// izpiši vrednost Y, ko je X = 0, label_3 in drugo na canvas-u 
  	  });
}, 840);					// časovni zamik setTimeout

arjan_t ::

Iz tega lahko dobis nekaj taksnega:

drawWithTimeout(function(f) { myGraph.drawEquation(f, '#FF3030', 3) }, 140, 23);
drawWithTimeout(myGraph.label_1, 560, 23);

mirancar ::

function drawWithTimeout(stevilo, color, label, timeout){
     setTimeout(function(opt) {
             myGraph.drawEquation(function(x) {               
                   return 100 * Math.sin((0.1 * x * (2*Math.PI)/opt.stevilo) + stevilo_dni * (2*Math.PI)/opt.stevilo);
             }, opt.color, 3);
     }, timeout, {stevilo : stevilo, color : color});
     setTimeout(function(opt) {
            myGraph[opt.label](function(x) {
                   return 100 * Math.sin((0.1 * x * (2*Math.PI)/opt.stevilo) + stevilo_dni * (2*Math.PI)/opt.stevilo);
            });
     }, timeout+420, {stevilo : stevilo, label : label});
}
drawWithTimeout(23, '#FF3030', 'label_1', 140);
drawWithTimeout(28, '#00EE00', 'label_2', 280);
drawWithTimeout(33, '#75F0F0', 'label_3', 420);


i have no idea what i'm doing


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Java[kotne funkcije]

Oddelek: Šola
5666 (622) Mesar
»

[C#]Analogna ura

Oddelek: Programiranje
152728 (2365) cekr
»

WPF 3d prostor - Spotlight, ne znam uporabljat

Oddelek: Programiranje
161726 (1486) Tutankhamun
»

[Python] syntax error-invalid syntax

Oddelek: Programiranje
51748 (1718) Vesoljc
»

Javascript problem

Oddelek: Izdelava spletišč
61245 (1109) fx

Več podobnih tem