back

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

■TranslateTransitionで動かす

JavaFXがSwingなどに比べて優れている点の一つに「アニメーション」があります。Swingでグラフィックをアニメーションしようとすると、スレッドやタイマーを作って位置をこまめに移動しては再描画し……などといったことをしなければいけません。が、JavaFXなら簡単にアニメーションが作れます。

アニメーション関係の機能は、javafx.animationパッケージにいろいろと用意されています。まずはもっとも多用される「表示位置を動かす」ためのものから使ってみましょう。

これは、「TranslateTransition」というクラスとして用意されています。これは、アニメーション関係のクラスのもっとも基本となるものといっていいでしょう。このクラスの使い方がわかれば、他のものもだいたい同じように扱えるようになるはずです。

このTranslateTransitionは、以下のような形でインスタンスを作成します。
new TranslateTransition();
new TranslateTransition(《Duration》);
new TranslateTransition(《Duration》,《Node》);
引数は、何もないものから、DurationNodeというものを用意するまでいろいろ揃っています。引数にある「Node」は、動かす部品のインスタンスです。グラフィックならシェイプ関係のインスタンスをこれに指定します。

もう1つの「Duration」は、javafx.utilパッケージに用意されているクラスで、アニメーションの経過時間を扱うためのものです。これは以下のようにしてインスタンスを作成します。
new Duration( ミリ秒数 );
これで、引数に指定したミリ秒数の経過時間を表すDurationインスタンスが用意できます。これで、「どのシェイプを、どれぐらいの時間アニメーションさせるか」という、アニメーションの基本設定ができます。

なお、引数でNodeDurationを設定していない場合、後からメソッドを使ってこれらを指定する必要があります。
《TranslateTransition》.setNode(《Node》);
《TranslateTransition》.setDuration(《Duration》);
これらがないとアニメーションそのものができませんから、newする際に最初から引数に指定しておくのがよいでしょう。



(by. SYODA-Tuyano.)

※リストが表示されない場合

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


 

記事のリストに戻る



PC Site G+ mail