dポイントプレゼントキャンペーン実施中!

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です。
よろしくお願いいたします。

A 回答 (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);
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/07/15 21:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!