私はクリックする場所からの波を作成するJavaScriptで書かれた小さなゲームを持っています。setTimeoutを呼び出すと、最初のインスタンスが再び停止します
- ますます大きな回jQuery.animate()を呼び出すことによって:私は「波」が画面を横切って移動させるには二つの方法を考え出しました。 demo
- 再帰的にsetTimeoutを呼び出すことによって。 demo
私が持っている問題は、私は2の振る舞いをしたいということである(列すべてがタイミングオフセットと同じ速度で成長する)が、(その後のクリックが形成された「波」化合物)1の作用を持ちます。
今すぐ2回目のデモで、 "wave"が終了する前にもう一度クリックすると、すぐにsetTimeoutsがクリアされ、すべてが再び開始されます。私は最初の例のようにそれらを積み重ねることができるようにしたい。
これらのページのソースを表示して、コードを表示できます(メソッドはgetMouseXYUpとgetMouseXYDownです)。
私は2番目のデモでやっているものの基本的な骨子は、この2つの機能で発見された:あなたはグローバル変数との問題を抱えているよう
コードを見てみるとfunction getMouseXYUp(e) {
$("body").die('mousemove');
h = (document.height - e.pageY + 17);
left = id-1;
right = id+1;
setTimeout("moveleft()", 100);
setTimeout("moveright()", 100);
return true
}
function moveleft(){
if (left >= 0){
$("#div"+left).animate({'height': h}, 400);
left--;
setTimeout("moveleft()", 50);
}
}