さて次のFLASHネタは、タイマー処理する場合のActionScriptの書き方。
ミリ秒指定でコールバックハンドラを登録して、不要になったらタイマーリセットして、IDをnullっておくだけ。
※JavaScriptとまったく同じで助かった(^^
shige&marizoの結婚式2次会向けに作ったビンゴでさんざん勉強した。
今さらだが、PC探してどこかに公開してみよかな。
hoge.htmlTextにカウンタを表示して、1秒ごとに3ずつインクリメントするサンプル。
100を越えたら終了。
1.タイマーのセット
var counter = 0;
var intervalID = setInterval( incrementCounter, 1000, 3 );
counter、intervalIDはグローバル変数として宣言します。
(もっとスマートな方法はあるでしょうが簡便さを優先)
setIntervalのパラメータは、コールバックハンドラ、タイマー値(ミリ秒)、
ハンドラへのパラメータ(不要なら省略可)の順です。
2.コールバックハンドラとタイマーリセット
function incrementCounter( increment ) {
if ( counter > 100 ) {
clearInterval( intervalID );
intervalID = null;
} else {
counter += increment;
hoge.htmlText = counter;
}
}
counter、intervalIDをグローバル変数にした理由がここにあります。
この手のタイマー処理は、clearInterval を呼ぶまでは、指定時間で
コールバックされます。
◆課題
複数タイマーを使いすぎるとクライアント環境に大きく依存してしまいます。
100ミリ秒で仕掛けてもそのとおりにwakeupしないようです。
大掛かりなスレッド管理的な発想で設計しないとNGってことなんだと
解釈してます。
*コツなど知っている人いたら教えてください。
No comments yet. You should be kind and add one!
By submitting a comment you grant typista a perpetual license to reproduce your words and name/web site in attribution. Inappropriate and irrelevant comments will be removed at an admin’s discretion. Your email is used for verification purposes only, it will never be shared.