我有一个Java应用程序,当我单击一个按钮时,ImageView会在屏幕上移动一定量。我怎样才能使每次单击按钮时都运行动画?我知道如何制作一个单击按钮并让它运行一个功能。我只是不知道如何正确使用动画来动态运行新的动画。
public Timeline moveAnimation(double x, double y) {
// horizontal movement
KeyValue kv = new KeyValue(turtle.xProperty(), x);
KeyFrame kf = new KeyFrame(Duration.millis(500), kv);
timeline.getKeyFrames().add(kf);
// vertical movement
KeyValue kv2 = new KeyValue(turtle.yProperty(), y);
KeyFrame kf2 = new KeyFrame(Duration.millis(500), kv2);
timeline.getKeyFrames().add(kf2);
return timeline;
}
public void move(double x, double y) {
moveAnimation(x, y).play();
}
上述方法将播放一次。当我尝试使用新值再次运行move()方法时,没有任何反应。
答案 0 :(得分:1)
Timeline
包含所有动画"步骤" (又名:KeyFrame
)。
在move
方法中,您应该使用Timeline
方法返回的值分配moveAnimation
类型的变量,如下所示:
public void move(double x, double y) {
Timeline timeline = moveAnimation(x, y).play();
//use timeline wherever...
}
然后在想要重复使用动画时调用timeline.play()
。