У меня есть базовая программа javafx, в которой прямоугольник, имитирующий лифт, должен двигаться вверх и вниз при нажатии кнопок «вверх» и «вниз». Я успешно реализовал код для этого ниже:
public void handle(ActionEvent event) {
if (event.getSource() == upButton) {
//this should all be put into a 'slideNode' method
TranslateTransition translateTransition1 = new TranslateTransition(Duration.millis(500), theElevator);
translateTransition1.setByX(0);
translateTransition1.setByY(-50);
translateTransition1.setCycleCount(1);
translateTransition1.setAutoReverse(false);
translateTransition1.play();
}
}
Проблема, которую мне нужно решить, заключается в том, что происходит, когда лифт находится на полпути к этому движению, и кнопка нажимается снова - лифт не получает полного движения, которое было бы, если бы я подождал, пока он достигнет своего первого пункта назначения, чтобы снова нажать кнопку !
Я понимаю, почему это происходит, но я хотел бы знать, есть ли способ решить эту проблему. Я предполагаю, что должна быть какая-то часть API, похожая на следующую, которую я могу добавить в конец своего кода:
Pause pause = new Pause(Duration.millis(500));
pause.pause();
Существует ли такая вещь? Как бы вы решили мою проблему?
TranslateTransition
уже имеетstatusProperty
вы можете наблюдать. Его значение будетRUNNING
во время выполнения анимации. - person James_D   schedule 12.09.2015