Animator
Animator オブジェクトは、連続して Core に静止画を描画させることでアニメーションを実現します。静止画の図形要素は予め Core に設定しておき、その表示位置をインデックス番号ごとにずらしていきます。インデックス番号の変更は 40ms ごとで、1秒間に25コマのアニメーションとなります。
インデックス番号 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
---|---|---|---|---|---|---|---|---|---|---|---|
道具A | init | ai0 | ai1 | ||||||||
loop | al0 | al1 | al2 | al3 | al4 | al5 | (al0) | (al1) | |||
道具B | init | bi0 | bi1 | bi2 | |||||||
loop | bl0 | bl1 | bl2 | bl3 | bl4 | bl5 | bl6 | ||||
道具C | init | ||||||||||
loop | cl0 | cl1 | cl2 | cl3 | (cl0) | (cl1) | (cl2) | (cl3) | (cl0) | (cl1) |
表の ai0, bl1 などはその道具を表示する座標で x と y をプロパティに持つオブジェクトです。
道具Aでは初期動作 init が ai0, ai1 の2個あり、繰り返し動作 loop が al0 ~ al5 の6個指定されています。最初は init の座標が順に使用され、init の最後に到達すると loop の座標が順に使用されます。loop の最後に到達すると繰り返しの最初の座標 al0 に戻って再び順に使用されます。
道具Bでは init が3個あり、loop が7個(以上)指定されています。このように道具ごとに init の個数も loop の個数も異なっていて問題ありません。
道具Cでは init が0個で loop が4個指定されています。init がなければ最初から loop の座標が使用されます。loop がなければそれ以降のインデックス番号では表示が変わりません。
コンストラクタ
- Animator()
- 新しい Animator オブジェクトを生成します。
プロパティ
- Animator.prototype.arms
- 腕の配列です。1本の腕は関節の状態一覧の配列で、これを腕の個数だけ配列にして設定します。状態一覧は次のようなオブジェクト(道具の状態一覧と同じ)で、これを関節の個数だけ配列にします。
-
{ "init": [ pi0, pi1, pi2, ... ], "loop": [ pl0, pl1, pl2, ... ], }
- BasicCreator.prototype.calculateOrbits() の返値の arms プロパティをそのまま設定することができます。
- Animator.prototype.core
- 静止画を表示する Core オブジェクトのインスタンスです。アニメーションに使用する図形要素はこのプロパティに直接設定してください。
- Animator.prototype.props
- 道具の状態一覧の配列です。状態一覧は次のようなオブジェクト(関節の状態一覧と同じ)で、これを道具の個数だけ配列にして設定します。
-
{ "init": [ pi0, pi1, pi2, ... ], "loop": [ pl0, pl1, pl2, ... ], }
- BasicCreator.prototype.calculateOrbits() の返値の props プロパティをそのまま設定することができます。
メソッド
- Animator.prototype.getIndex()
- アニメーションのインデックス番号を取得します。
- Animator.prototype.getStatus()
- アニメーションの実行ステータスを取得します。
- Animator.prototype.setIndex()
- アニメーションのインデックス番号を設定します。
- Animator.prototype.start()
- アニメーションを開始します。
- Animator.prototype.stop()
- アニメーションを停止します。