私はゲームのサイモンを HTML/JS でコーディングしようとしていますが、ゲームがシーケンスをフラッシュする部分を除いてすべて機能しているため、新しいシーケンスが何であるかがわかります。基本的に私が持っているものは次のとおりです。
for(var i in thePattern){
var obj = document.getElementById(thePattern[i]);
window.setTimeout(colorON(obj),500);
window.setTimeout(colorOFF(obj),1000);
}
ここで、colorON と colorOFF は次のとおりです。
function colorON(obj){
if(obj.id == "red"){
obj.style.backgroundColor="#ff5555";
}else if(obj.id == "blue"){
obj.style.backgroundColor="#5555ff";
}else if(obj.id == "green"){
obj.style.backgroundColor="#88ff88";
}else{
obj.style.backgroundColor="#ffffaa";
}
}
function colorOFF(obj){
if(obj.id == "red"){
obj.style.backgroundColor="#ff0000";
}else if(obj.id == "blue"){
obj.style.backgroundColor="#0000ff";
}else if(obj.id == "green"){
obj.style.backgroundColor="#22ff22";
}else{
obj.style.backgroundColor="#ffff00";
}
}
実行しているように見えるのは、for ループ全体を通過し、すべてのタイマーを開始してから、すべてのタイマーが非常に速くオフになるため、色が点滅しているように見えません。
何か案は?すべてのヘルプは大歓迎です。
現在は正しく点滅し、クロージャーも正しく機能していますが、すべての色が同時に点滅しています。クロージャーを別の中に入れようとしましたsetTimeout
が、それは他の問題を引き起こします。
あなたの助けに感謝します。