libro
www.tuyano.com
初心者のためのJavaFXプログラミング入門

JavaFXのアニメーション機能 (4/5)

作成:2015-04-18 09:01
更新:2015-04-18 09:01

■Timelineを使う

これらのクラスは、基本的に「ある状態から次の状態へと変化させる」という、2つの状態を滑らかに移行するアニメーションを作成するシンプルなものです。が、もっと複雑な動きを実現したい場合、これらをいくつもつなぎ合わせていくのは効率的ではありません。

こうした場合に用いられるのが「Timeline」というクラスです。Timelineは、文字通りアニメーションのタイムライン(時間ごとの変化を管理するもの)となるものです。

このTimelineを使うには、「KeyFrame」というクラスが必要になります。これは、タイムラインに設定するキーフレーム(特定の時間にアニメーションの状態を設定するもの)となるものです。

Timelineは、まずインスタンスを作成し、そこにキーフレームとなるKeyFrameを必要に応じて組み込んでいきます。そして必要な設定ができたら、playでアニメーションを開始する、という流れになります。では、アニメーション作成に必要なもの整理していきましょう。

●Timelineの作成
new Timeline();

Timelineインスタンスは、引数なしのデフォルトコンストラクタで作成できます。これ自体にはこれまでのアニメーションクラスのようにNodeDurationなどは設定しません。

●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」といったものが用意できました。後はこれらをもとにしてアニメーションの情報を組み立てていきます。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのJavaFXプログラミング入門」に戻る