• ベストアンサー

一定時間ごとにカウント

iを0として、一定時間たったらiを1プラスしたいのですが、 どのようにしたらいいかわかりません。 setIntervalを使って下記のとおり記述してみました。 var i = 0; function cnt(){ i++; } setInterval(cnt,1000); trace(i); しかし、iはいつまでたっても0のままです。 たとえば20秒ごとにiを1プラスしていくといった場合は、 どのように記述したらいいのでしょうか。 Flash CS3、WinXP、AS2.0です。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • atse
  • ベストアンサー率83% (36/43)
回答No.1

traceをしている場所が悪いです。 setIntervalを設定した直後に一回実行しているだけです。 var i = 0; function cnt() { i++; trace(i); } setInterval(cnt, 1000); として、時間ごとに実行されるcnt()内で実行しましょう。 setIntervalに使われている数値の部分はミリ秒表記なので、 1000ミリ秒=1秒、よって20秒にしたい場合は、20000とすればよいです。 また、setIntervalを変数に代入しておくと後から削除もできるので、 必要な場合はやっておくと良いでしょう。 var i = 0; function cnt() { i++; trace(i); if (i >= 20) { clearInterval(myID);//interval終了 trace("iが20以上になったから終了!"); } } var myID = setInterval(cnt, 1000);

hukazuo
質問者

お礼

ありがとうございました。 無事解決できました^^