ビデオ: Java Tutorial ( How to make Animation in JavaFX ) 01 2024
単純なアニメーション効果。この効果は、通常、画面上のオブジェクトを動かすことでアプリケーションを生き生きとさせます。
特殊効果を適用したり、プロパティバインディングを組み込んでコントロールをより敏感にしたり、音声やメディアを使用して音声や映像に関心を持つようにすることで、JavaFXアプリケーションのルック&フィールを向上させることができます。
<! - 1 - >来年、オスカー・ベスト・アニメーションで勝利することを期待しないでください。あなたのアプリケーションでPixarとコラボレーションしたとは思わないでしょう。それでもなお、これらのテクニックを使用して、面白いWhiz-Bangをアプリケーションに追加できます。
JavaFXアニメーションの基本的な考え方は、定期的に1つまたは複数のノードプロパティの値を操作することです。たとえば、ボールを表す円があり、画面の左側から右側に移動したいとします。画面の幅が600ピクセルであると仮定すると、posXプロパティを0から600まで変化させて円をアニメートします。
<! - 2 - >ボールが画面上でどのくらい速く動くかは、posXプロパティに対する各変更の間の経過時間と、各時間間隔でposXプロパティに追加する増分の2つの要素に影響します。
たとえば、各時間間隔でposXプロパティに3を追加すると、600に達するまでに200のインターバルがかかります(3 x 200 = 600)。間隔が10ミリ秒(毎秒100回)ごとに発生する場合、ボールが画面を左から右に横切るには、2,000ミリ秒(2秒)がかかります。
<! JavaFXアニメーションがなければ、Java Timerオブジェクトを使用して一定の間隔でボールを移動することによって、移動するボールを実装することができます。 Timerクラスは、セットアップして正しく使用するのが難しい場合があります。 JavaFXアニメーションクラスは、ノードのアニメーション化をより簡単な命題にします。難しい方法
と簡単な方法: 難しい方法 では、タイマーイベントを手動で設定する必要があります。タイマーイベントが発生したときに呼び出されるイベントリスナーを作成します。イベントリスナーでは、アニメーション化するノードのプロパティを操作します。 たとえば、画面上でボールを移動するには、10ミリ秒ごとにティック間隔を設定します。それぞれの目盛りで、ボールのx位置を3つ増やします。ボールを移動するためにタイマーを合計200回実行するように設定します。
-
このアニメーションを設定するには、タイムラインとKeyFrameという2つのクラスを使用する必要があり、ボールを移動するActionEventリスナーを作成する必要があります。 簡単な方法
は、一般的なタイプのアニメーションを簡単に実装するためにJavaFXが提供するショートカットクラスを利用します。
たとえば、TranslateTransitionクラスを使用すると、指定した期間内に画面の片側から別の側に円を簡単に移動できます。ボールのxの位置を0から600まで2秒かけて変化させることを指定して、TranslateTransitionを設定するだけです。 TranslateTransitionクラスが詳細を処理します。