記事中のサンプルのコードをこちらからダウンロードできます

 前回は,タイムラインに作成したトゥイーンアニメーションから,Animatorクラスを使ったActionScriptのコードを起こす方法をご紹介しました。そこで今回は,作成したAnimatorクラスを制御する方法をご紹介します。Animatorクラスのメソッドやプロパティを使えば,アニメーションを再生するだけではなく,細かく制御できます。イベントを利用して任意のタイミングで指定した処理を実行させることも可能です。

 図1のムービーでは,作成したアニメーションに対して,メソッドやプロパティを利用して様々な制御を実現しています。

図1●画面下のパネルでアニメーションを制御できる
図1●画面下のパネルでアニメーションを制御できる
[クリックすると別ウィンドウでムービーを表示します]

アニメーションを制御・管理するメソッドとプロパティ

 Animatorクラスを使ったアニメーションでは,アニメーションの対象となるインスタンス(ターゲット)の動きを,「フレーム」という単位で管理しています。各フレームには,そのフレームでのターゲットの位置や変形,フィルタ等に関する情報(KeyFrameクラスのインスタンス)が保存されており,この情報を連続して適用することで,アニメーションを作成しています。このフレームごとのアニメーションの情報をひとまとめにした物を,「モーション」(Motionクラスのインスタンス)と呼びます。

 30フレームのタイムラインを使ったトゥイーンアニメーションから作成したAnimatorクラスのインスタンスであれば,やはりフレーム数は「30」になります。タイムラインの1フレームごとのインスタンスの情報が,モーションにまとめて管理してあると考えるとわかりやすいかもしれませんね。トゥイーンアニメーションを,このようなフレーム単位に分割しておくことで,1フレームずつ再生したり,任意の位置で停止したりといった動きをつけることができるわけですね。

 Animatorクラスには,このフレームの流れをコントロールするために,表1のような,様々なメソッドが用意されています。

表1●Animatorクラスのメソッド
メソッド 説明
playメソッド アニメーションを再生する
stopメソッド アニメーションを停止し,最初のフレームに戻す
pauseメソッド アニメーションを一時停止する
resumeメソッド 一時停止したアニメーションを再開する。playメソッドは,アニメーションの最初から再生するのに対し,resumeメソッドは,「現在のフレーム」から再生を行う
nextFrameメソッド 次のフレームに移行する
endメソッド アニメーションの最後のフレームに移行する
rewindメソッド アニメーションの最初のフレームに巻き戻す

 名前をざっと見ただけで,どんな内容なのかが想像できるメソッドばかりですね。Animatorクラスのメソッドは,DVDプレーヤーや,音楽プレーヤーのコントローラに並んでいるような名前ばかりです。そして,その機能もやはり,その通りのものです。

 Animatorクラスにはさらに,アニメーションの状態を管理する,表2のような,様々なプロパティが用意されています。

表2●Animatorクラスのプロパティ(抜粋)
プロパティ 説明
timeプロパティ アニメーションの現在のフレームを取得/設定
targetプロパティ アニメーションのターゲットとなっているインスタンスへの参照を取得/設定
repeatCount アニメーションの繰り返し回数を取得/設定。0で連続再生
autoRewind アニメーションが最後まで再生された場合,先頭フレームへと巻き戻すかどうかを取得/設定
isPlaying 再生中かどうかを取得。再生中であればtrue,それ以外はfalse
positionMatrix アニメーションを全体的に変形したい際に基準となるマトリクスを取得/設定
motion アニメーションのモーションへの参照。1フレームごとのアニメーションの状態(KeyFrame)をまとめて管理するシーケンス(Motion)です。個々のアニメーションの状態にアクセスしたい場合には,このmotion経由でアクセスします