要說JavaFX跟Swing外觀上最大的改變就是JavaFX多了動畫(Animation)的支援。JavaFX的動畫加入了「關鍵影格(Key Frame)」的概念,因此要同時控制多個不同的元件進行動畫,可以輕易地做到!



關鍵影格

關鍵影格就是在一條影格時間軸上,可以直接被清楚定義出目前狀態的影格。舉個例子「物體0秒的時候是在A的位置,5秒的時候是在B的位置」,這就是關鍵影格的描述,我們可以很清楚的講出哪個物體在什麼時間的狀態是什麼。使用關鍵影格,可以很容易地產生出動畫,用剛才的例子,我們雖然並不清楚物體從開始移動到結束移動的過程,無法直接講出他在1秒的時候是在哪個位置,但是我們可以藉由一些演算公式,來計算該物體在那個時間點的位置,所以當我們從時間軸0秒看到5秒時,物體是從A的位置可以漸漸的移到B的位置。這個原本不存在,由公式計算出來的狀態變化,稱為「補間動畫(Tweening)」。

JavaFX 動畫

在JavaFX中,可以使用Timeline、KeyFrame、和KeyValue來製作動畫,如下面的程式:

執行結果:
Screen混合模式

Overlay混合模式