JavaFXのアニメーション機能 (1/5)
作成:2015-04-18 08:54
更新:2015-04-18 08:54
更新:2015-04-18 08:54
■TranslateTransitionで動かす
JavaFXがSwingなどに比べて優れている点の一つに「アニメーション」があります。Swingでグラフィックをアニメーションしようとすると、スレッドやタイマーを作って位置をこまめに移動しては再描画し……などといったことをしなければいけません。が、JavaFXなら簡単にアニメーションが作れます。
アニメーション関係の機能は、javafx.animationパッケージにいろいろと用意されています。まずはもっとも多用される「表示位置を動かす」ためのものから使ってみましょう。
これは、「TranslateTransition」というクラスとして用意されています。これは、アニメーション関係のクラスのもっとも基本となるものといっていいでしょう。このクラスの使い方がわかれば、他のものもだいたい同じように扱えるようになるはずです。
このTranslateTransitionは、以下のような形でインスタンスを作成します。
もう1つの「Duration」は、javafx.utilパッケージに用意されているクラスで、アニメーションの経過時間を扱うためのものです。これは以下のようにしてインスタンスを作成します。
なお、引数でNodeやDurationを設定していない場合、後からメソッドを使ってこれらを指定する必要があります。
アニメーション関係の機能は、javafx.animationパッケージにいろいろと用意されています。まずはもっとも多用される「表示位置を動かす」ためのものから使ってみましょう。
これは、「TranslateTransition」というクラスとして用意されています。これは、アニメーション関係のクラスのもっとも基本となるものといっていいでしょう。このクラスの使い方がわかれば、他のものもだいたい同じように扱えるようになるはずです。
このTranslateTransitionは、以下のような形でインスタンスを作成します。
new TranslateTransition();引数は、何もないものから、DurationとNodeというものを用意するまでいろいろ揃っています。引数にある「Node」は、動かす部品のインスタンスです。グラフィックならシェイプ関係のインスタンスをこれに指定します。
new TranslateTransition(《Duration》);
new TranslateTransition(《Duration》,《Node》);
もう1つの「Duration」は、javafx.utilパッケージに用意されているクラスで、アニメーションの経過時間を扱うためのものです。これは以下のようにしてインスタンスを作成します。
new Duration( ミリ秒数 );これで、引数に指定したミリ秒数の経過時間を表すDurationインスタンスが用意できます。これで、「どのシェイプを、どれぐらいの時間アニメーションさせるか」という、アニメーションの基本設定ができます。
なお、引数でNodeやDurationを設定していない場合、後からメソッドを使ってこれらを指定する必要があります。
《TranslateTransition》.setNode(《Node》);これらがないとアニメーションそのものができませんから、newする際に最初から引数に指定しておくのがよいでしょう。
《TranslateTransition》.setDuration(《Duration》);
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
※関連コンテンツ