JavaFXのアニメーション機能 (4/5)
作成:2015-04-18 09:01
更新:2015-04-18 09:01
更新:2015-04-18 09:01
■Timelineを使う
これらのクラスは、基本的に「ある状態から次の状態へと変化させる」という、2つの状態を滑らかに移行するアニメーションを作成するシンプルなものです。が、もっと複雑な動きを実現したい場合、これらをいくつもつなぎ合わせていくのは効率的ではありません。
こうした場合に用いられるのが「Timeline」というクラスです。Timelineは、文字通りアニメーションのタイムライン(時間ごとの変化を管理するもの)となるものです。
このTimelineを使うには、「KeyFrame」というクラスが必要になります。これは、タイムラインに設定するキーフレーム(特定の時間にアニメーションの状態を設定するもの)となるものです。
Timelineは、まずインスタンスを作成し、そこにキーフレームとなるKeyFrameを必要に応じて組み込んでいきます。そして必要な設定ができたら、playでアニメーションを開始する、という流れになります。では、アニメーション作成に必要なもの整理していきましょう。
●Timelineの作成
Timelineインスタンスは、引数なしのデフォルトコンストラクタで作成できます。これ自体にはこれまでのアニメーションクラスのようにNodeやDurationなどは設定しません。
●KeyFrameの作成
KeyFrameは、引数にDurationと「KeyValue」というインスタンスを指定します。Durationは、先ほど登場した、アニメーションの再生時間を扱うDurationインスタンスです。
KeyValueは、キーに設定する値を扱うためのクラスです。これは以下のように作成します。
●KeyValueの作成
KeyValueは、プロパティを表す「Property」インターフェイスを実装するクラスと、それに設定される値を引数に指定します。シェイプの属性などは、そのほぼすべてがPropertyインターフェイスを実装して作成されていて、プロパティを表すPropertyインスタンスを取り出すためのメソッドが用意されています。それを利用して、操作するシェイプの操作するプロパティを表すPropertyインスタンスと、それに設定する値を引数にしてKeyValueを作成します。
これで、アニメーションに必要な「Timeline」「KeyFrame」、そしてKeyFrameに必要な「KeyValue」といったものが用意できました。後はこれらをもとにしてアニメーションの情報を組み立てていきます。
こうした場合に用いられるのが「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」といったものが用意できました。後はこれらをもとにしてアニメーションの情報を組み立てていきます。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ