0

"body onload="varname=setInterval etc, etc""その後setInterval、一度に 2 つのイベントが実行されてしまった場合、それ"overload == true"がリセットされずketchCount、配列から画像が更新されない場合、ただ開始してsetIntervalそこから動作します。私はかなり初心者であることを知っていますが、助けていただければ幸いです!

ketchupArray=new Array();
ketchupArray[0] = new Image(192, 168);
ketchupArray[0].src = "./pictures/levels/nothing.jpg?";
ketchupArray[1] = new Image(192, 168);
ketchupArray[1].src = "./pictures/levels/lowest.jpg?";
ketchupArray[2] = new Image(192, 168);
ketchupArray[2].src = "./pictures/levels/low.jpg?";
ketchupArray[3] = new Image(192, 168);
ketchupArray[3].src = "./pictures/levels/medium.jpg?";
ketchupArray[4] = new Image(192, 168);
ketchupArray[4].src = "./pictures/levels/high.jpg?";
ketchupArray[5] = new Image(192, 168);
ketchupArray[5].src = "./pictures/levels/highest.jpg?";

overload = false;
ketchCount = 0;
var lessCount;
var overCount;
var lessCountVar;

function overFunction()
{
overload == false;
ketchCount == 0;
document.getElementById("ketchupLevel").src = ketchupArray[ketchCount].src;
lessCountVar=setInterval(function(){lessCount()},5000);
}

function lessCount()
{
if (ketchCount == 0)
  {
  return;
  }
ketchCount--;
document.getElementById("ketchupLevel").src = ketchupArray[ketchCount].src;
}

function moreKetchup()
{
if (overload == true) 
  {
  return;
  }
ketchCount++;
document.getElementById("ketchupLevel").src = ketchupArray[ketchCount].src;
if (ketchCount == 5)
  {
  overload == true;
  clearInterval(lessCountVar);
  overCount=setTimeout(function(){overFunction()},5000);
  }
}

function lessKetchup()
{
if (overload == true)
  {
  return;
  }
else if (ketchCount == 0)
  {
  return;
  }
ketchCount--;
document.getElementById("ketchupLevel").src = ketchupArray[ketchCount].src;
}
4

1 に答える 1

0

あなたが試すことができる2つのこと:

初めて起動するためにonload使用中。setTimeout()overFunction()

おそらくコードにoverFunction()エラーがあります。値を割り当てる代わりに、オーバーロードと ketchCount を比較しています。正しいコードは次のようになります。

function overFunction()
{
  overload = false;
  ketchCount = 0;
  document.getElementById("ketchupLevel").src = ketchupArray[ketchCount].src;
  lessCountVar=setInterval(function(){lessCount()},5000);
}
于 2012-08-13T12:56:15.123 に答える