前回は,タイムラインに作成したトゥイーンアニメーションから,Animatorクラスを使ったActionScriptのコードを起こす方法をご紹介しました。そこで今回は,作成したAnimatorクラスを制御する方法をご紹介します。Animatorクラスのメソッドやプロパティを使えば,アニメーションを再生するだけではなく,細かく制御できます。イベントを利用して任意のタイミングで指定した処理を実行させることも可能です。
図1のムービーでは,作成したアニメーションに対して,メソッドやプロパティを利用して様々な制御を実現しています。
![]() |
図1●画面下のパネルでアニメーションを制御できる [クリックすると別ウィンドウでムービーを表示します] |
アニメーションを制御・管理するメソッドとプロパティ
Animatorクラスを使ったアニメーションでは,アニメーションの対象となるインスタンス(ターゲット)の動きを,「フレーム」という単位で管理しています。各フレームには,そのフレームでのターゲットの位置や変形,フィルタ等に関する情報(KeyFrameクラスのインスタンス)が保存されており,この情報を連続して適用することで,アニメーションを作成しています。このフレームごとのアニメーションの情報をひとまとめにした物を,「モーション」(Motionクラスのインスタンス)と呼びます。
30フレームのタイムラインを使ったトゥイーンアニメーションから作成したAnimatorクラスのインスタンスであれば,やはりフレーム数は「30」になります。タイムラインの1フレームごとのインスタンスの情報が,モーションにまとめて管理してあると考えるとわかりやすいかもしれませんね。トゥイーンアニメーションを,このようなフレーム単位に分割しておくことで,1フレームずつ再生したり,任意の位置で停止したりといった動きをつけることができるわけですね。
Animatorクラスには,このフレームの流れをコントロールするために,表1のような,様々なメソッドが用意されています。
メソッド | 説明 |
---|---|
playメソッド | アニメーションを再生する |
stopメソッド | アニメーションを停止し,最初のフレームに戻す |
pauseメソッド | アニメーションを一時停止する |
resumeメソッド | 一時停止したアニメーションを再開する。playメソッドは,アニメーションの最初から再生するのに対し,resumeメソッドは,「現在のフレーム」から再生を行う |
nextFrameメソッド | 次のフレームに移行する |
endメソッド | アニメーションの最後のフレームに移行する |
rewindメソッド | アニメーションの最初のフレームに巻き戻す |
名前をざっと見ただけで,どんな内容なのかが想像できるメソッドばかりですね。Animatorクラスのメソッドは,DVDプレーヤーや,音楽プレーヤーのコントローラに並んでいるような名前ばかりです。そして,その機能もやはり,その通りのものです。
Animatorクラスにはさらに,アニメーションの状態を管理する,表2のような,様々なプロパティが用意されています。
プロパティ | 説明 |
---|---|
timeプロパティ | アニメーションの現在のフレームを取得/設定 |
targetプロパティ | アニメーションのターゲットとなっているインスタンスへの参照を取得/設定 |
repeatCount | アニメーションの繰り返し回数を取得/設定。0で連続再生 |
autoRewind | アニメーションが最後まで再生された場合,先頭フレームへと巻き戻すかどうかを取得/設定 |
isPlaying | 再生中かどうかを取得。再生中であればtrue,それ以外はfalse |
positionMatrix | アニメーションを全体的に変形したい際に基準となるマトリクスを取得/設定 |
motion | アニメーションのモーションへの参照。1フレームごとのアニメーションの状態(KeyFrame)をまとめて管理するシーケンス(Motion)です。個々のアニメーションの状態にアクセスしたい場合には,このmotion経由でアクセスします |