Skip to content
giginet edited this page Nov 26, 2011 · 2 revisions

Kwing.Timer

このライブラリは?

汎用的に時間を扱うクラスです。

○フレーム後にある処理を実行したいなどの時に利用できます。

使い方

HTMLのheadにこれを書きましょう。

<script type="text/javascript" src="https://raw.github.com/giginet/kwing.coffee/master/lib/timer.min.js"></script>

わずかこれだけ!

簡単な使い方

var timer = new Timer(300); // 300フレーム計測するタイマーを生成
timer.play(); // タイマーを起動状態にする
timer.tick(); // タイマーを動かす
timer.now(); // 現在のタイマーの時間を取り出す

メソッド

Timer#set(max)

タイマーの最大時間をmaxに設定します 自分自身を返します。

Timer#play()

タイマーを起動状態にします。 自分自身を返します。

Timer#pause()

タイマーを停止状態にします。 内部のカウントはそのまま保持されます。(再びplayを実行すると、停止したところから再開) 自分自身を返します。

Timer#stop()

タイマーを停止状態にし、カウントを0に戻します。 自分自身を返します。

Timer#reset()

タイマーのカウントを0に戻します 自分自身を返します。

Timer#now()

タイマーの現在の内部カウンターを返します。

Timer#isActive()

タイマーが起動状態かどうかを返します

Timer#isOver()

タイマーが終了状態かどうかを返します

Timer#setComplete(func)

タイマーが終了したときに起動するコールバックを設定します。 自分自身を返します。

var timer = Timer(100);
timer.setComplete(function(){
    console.log('100フレーム経ちました!'); // 100フレーム後に実行されます。
});

Timer#setRepeat(Boolean)

タイマーをリピート状態にしたり、解除したりします。 リピート状態の時、タイマーが最大値に達すると、カウンターが0に戻ります。 自分自身を返します。

var timer = Timer(100);
timer.setRepeat(true);
timer.setComplete(function(){
    console.log("100フレーム毎に実行されます!");
});

Timer#tick()

タイマーを動かします。毎フレーム呼び出されるイベント内で実行してください。 この関数は、以下の処理を行います。

  • タイマーが起動状態の時、カウンターを+1する
  • タイマーが最大時間に達したとき、setCompleteでセットされた関数を実行する
  • タイマーが最大時間に達し、リピート状態になっていたとき、カウンターを0に戻す
  • タイマーが停止状態の時、何もしない

自分自身を返します。

ソースコード

githubで公開中。

CoffeeScriptで開発したため、ビルド環境が必要です。

https://github.com/giginet/kwing.coffee/blob/master/lib/timer.coffee

テスト

テスト書いてないです><