これらのクラスは、基本的に「ある状態から次の状態へと変化させる」という、2つの状態を滑らかに移行するアニメーションを作成するシンプルなものです。が、もっと複雑な動きを実現したい場合、これらをいくつもつなぎ合わせていくのは効率的ではありません。
こうした場合に用いられるのが「
Timeline」というクラスです。
Timelineは、文字通りアニメーションのタイムライン(時間ごとの変化を管理するもの)となるものです。
この
Timelineを使うには、「
KeyFrame」というクラスが必要になります。これは、タイムラインに設定するキーフレーム(特定の時間にアニメーションの状態を設定するもの)となるものです。
Timelineは、まずインスタンスを作成し、そこにキーフレームとなる
KeyFrameを必要に応じて組み込んでいきます。そして必要な設定ができたら、playでアニメーションを開始する、という流れになります。では、アニメーション作成に必要なもの整理していきましょう。
●Timelineの作成new Timeline();
Timelineインスタンスは、引数なしのデフォルトコンストラクタで作成できます。これ自体にはこれまでのアニメーションクラスのように
Nodeや
Durationなどは設定しません。
●KeyFrameの作成new KeyFrame(《Duration》,《KeyValue》);
KeyFrameは、引数に
Durationと「
KeyValue」というインスタンスを指定します。
Durationは、先ほど登場した、アニメーションの再生時間を扱う
Durationインスタンスです。
KeyValueは、キーに設定する値を扱うためのクラスです。これは以下のように作成します。
●KeyValueの作成new keyValue(《Property》, 値 );
KeyValueは、プロパティを表す「
Property」インターフェイスを実装するクラスと、それに設定される値を引数に指定します。シェイプの属性などは、そのほぼすべてが
Propertyインターフェイスを実装して作成されていて、プロパティを表す
Propertyインスタンスを取り出すためのメソッドが用意されています。それを利用して、操作するシェイプの操作するプロパティを表す
Propertyインスタンスと、それに設定する値を引数にして
KeyValueを作成します。
これで、アニメーションに必要な「
Timeline」「
KeyFrame」、そしてKeyFrameに必要な「KeyValue」といったものが用意できました。後はこれらをもとにしてアニメーションの情報を組み立てていきます。