javafx
Анимация
Поиск…
Анимация объекта с временной шкалой
Button button = new Button("I'm here...");
Timeline t = new Timeline(
new KeyFrame(Duration.seconds(0), new KeyValue(button.translateXProperty(), 0)),
new KeyFrame(Duration.seconds(2), new KeyValue(button.translateXProperty(), 80))
);
t.setAutoReverse(true);
t.setCycleCount(Timeline.INDEFINITE);
t.play();
Самый простой и гибкий способ использования анимации в JavaFX - это класс Timeline
. Временная шкала работает с использованием KeyFrame
s как известных точек анимации. В этом случае он знает, что в начале ( 0 seconds
), что translateXProperty
должен быть равен нулю, а в конце ( 2 seconds
), что свойство должно быть 80
. Вы также можете делать другие вещи, например, настроить анимацию на обратное и сколько раз она должна выполняться.
Сроки могут анимировать несколько свойств одновременно:
Timeline t = new Timeline(
new KeyFrame(Duration.seconds(0), new KeyValue(button.translateXProperty(), 0)),
new KeyFrame(Duration.seconds(1), new KeyValue(button.translateYProperty(), 10)),
new KeyFrame(Duration.seconds(2), new KeyValue(button.translateXProperty(), 80)),
new KeyFrame(Duration.seconds(3), new KeyValue(button.translateYProperty(), 90))
); // ^ notice X vs Y
Эта анимация примет свойство Y
от 0
(начальное значение свойства) до 10
секунд в секунду, и оно заканчивается на 90
секунд в три секунды. Обратите внимание, что когда анимация начинается с того, что Y
возвращается к нулю, даже если это не первое значение на временной шкале.