旋转矩形的时间轴

时间:2016-08-19 06:07:17

标签: javafx

我需要做一个动作,而动画就在那里。就像我的矩形在Y轴上旋转180度一样。我需要它在90度完成时改变颜色,并在完成180度时使文本可见。

我被告知使用时间轴并将事件处理程序添加到相关的关键帧,但我真的不知道如何。

public void open() {
  RotateTransition trans = new RotateTransition(Duration.seconds(1), rec);
  trans.setOnFinished(event -> {
  text.setVisible(true);
  rec.setFill(Color.WHITE);
  });
  trans.play(); 
}

1 个答案:

答案 0 :(得分:1)

Timeline允许您为属性设置动画以及在给定时间触发事件。在下面的示例中,矩形的rotate属性从0到180动画,使用2 KeyFrame s进行初始旋转和最终旋转值(第一个不需要,除非您想要反转动画或多次播放动画等;在这种情况下,颜色需要更多的工作)。其他KeyFrame会触发EventHandler<ActionEvent>,从而更改fill的{​​{1}}:

Rectangle

如果您需要指定一个支点,您还可以将Rotate transform应用于Rectangle rec = new Rectangle(50, 50, 50, 50); Duration rotateDuration = Duration.seconds(5); Timeline timeline = new Timeline( new KeyFrame(Duration.ZERO, new KeyValue(rec.rotateProperty(), 0)), // initial rotate new KeyFrame(rotateDuration.divide(2), evt -> { // event for halfway through rec.setFill(Color.RED); }), new KeyFrame(rotateDuration, new KeyValue(rec.rotateProperty(), 180)) // end value of rotate ); timeline.play(); 并为其Node属性设置动画:

angle