Napisałem kiedyż tam dosyć ciekawą klasę w JS , może komuż przyda się w grze do animacji różnych elementów. Starałem się emulować wątki (oczywiżcie w JS pełna emulacja jest niemożliwa) wyszło jak wyszło
Kod:
<script> 
Object.prototype.$ = function&#40;v&#41;&#123; 
return document.getElementById&#40;v&#41;; 
&#125; 
MyInterval = function &#40;f, t&#41;&#123; 
this.func = f
this.time = t; 
this.handler; 

this.start = function&#40;&#41; &#123; 
this.handler = setInterval&#40;this.func, this.time&#41;; 
&#125; 
this.repeat = function&#40;h&#41; &#123; 
h.handler = setInterval&#40;h.func, h.time&#41;; 
&#125; 
this.sleep = function&#40;time&#41; &#123; 
this.stop&#40;&#41;; 
setTimeout&#40;this.repeat, time, this&#41;; 
&#125; 
this.stop = function&#40;&#41; &#123; 
clearInterval&#40;this.handler&#41;; 
&#125; 
&#125; 
</script> 
watek &#58; 
<div id="watek1"></div> 
watek 2&#58; 
<div id="watek2"></div> 
watek 3&#58; 
<div id="watek3"></div> 
<script> 
var i = 0; 
animacja = function&#40;&#41; &#123; 
i+=2; 
$&#40;'watek1'&#41;.style.marginLeft = i+'px'; 
$&#40;'watek1'&#41;.innerHTML = i; 
if&#40;i == 26&#41; &#123;watek.sleep&#40;3000&#41;&#125;; 
if&#40;i == 60&#41; &#123;watek.sleep&#40;3000&#41;&#125;; 
if&#40;i == 70&#41; &#123;watek.stop&#40;&#41;&#125;; 
&#125; 
var j = 0; 
animacja2 = function&#40;&#41; &#123; 
j+=2; 
$&#40;'watek2'&#41;.style.marginLeft = j+'px'; 
$&#40;'watek2'&#41;.innerHTML = j; 
if&#40;j == 30&#41; &#123;watek2.sleep&#40;2000&#41;&#125;; 
if&#40;j == 74&#41; &#123;watek2.sleep&#40;2000&#41;&#125;; 
if&#40;j == 100&#41; &#123;watek2.stop&#40;&#41;&#125;; 
&#125; 
var k = 0; 
animacja3 = function&#40;&#41; &#123; 
k+=2; 
$&#40;'watek3'&#41;.style.marginLeft = k+'px'; 
$&#40;'watek3'&#41;.innerHTML = k; 
if&#40;k == 34&#41; &#123;watek3.sleep&#40;1500&#41;&#125;; 
if&#40;k == 64&#41; &#123;watek3.stop&#40;&#41;&#125;; 
&#125; 
watek = new MyInterval&#40;animacja, 500&#41;; 
watek.start&#40;&#41;; 

watek2 = new MyInterval&#40;animacja2, 450&#41;; 
watek2.start&#40;&#41;; 

watek3 = new MyInterval&#40;animacja3, 400&#41;; 
watek3.start&#40;&#41;; 
</script>
Nie należy wpisywać w konstruktorze tych samych wartożci. Wydaje mi się, że to po prostu bład w JS. Po prostu wpisujcie przeskoki o bezpieczne 50 wtedy wszystko jest OK.