Forum » Programiranje » [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?
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Java[kotne funkcije]Oddelek: Šola | 666 (622) | Mesar |
» | [C#]Analogna uraOddelek: Programiranje | 2728 (2365) | cekr |
» | WPF 3d prostor - Spotlight, ne znam uporabljatOddelek: Programiranje | 1726 (1486) | Tutankhamun |
» | [Python] syntax error-invalid syntaxOddelek: Programiranje | 1748 (1718) | Vesoljc |
» | Javascript problemOddelek: Izdelava spletišč | 1245 (1109) | fx |