Javafx 简明教程

JavaFX - Rotate Transition

可在 JavaFX 中应用动画更改对象的几何形状、属性、位置等。旋转过渡用于处理对象的旋转位置,同时保留其形状和属性。

某个对象以其中心点为轴,绕中心点旋转。这种类型的动画称为旋转过渡。通过旋转对象,您可以在播放对象时对其应用该旋转过渡。

该类型的动画可以在对象进入应用程序或退出应用程序时应用。

Rotate Transition in JavaFX

JavaFX 中的旋转过渡使用包 javafx.animation 中的 RotateTransition 类应用。该操作通过指定起始值、结束值和过渡持续时间完成。RotateTransition 类具有以下属性 −

  1. axis − 指定此 RotateTransition 的旋转轴。

  2. node − 此 RotateTransition 的目标节点。

  3. byAngle − 指定此 RotateTransition 从起始位置增量的停止角度值。

  4. fromAngle − 指定此 RotateTransition 的起始角度值。

  5. toAngle − 指定此 RotateTransition 的停止角度值。

  6. duration − 此旋转过渡的持续时间。

Example

以下是 JavaFX 中旋转过渡演示的程序。将此代码保存在名为 RotateTransitionExample.java 的文件中。

import javafx.animation.RotateTransition;
import javafx.application.Application;
import static javafx.application.Application.launch;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Polygon;
import javafx.stage.Stage;
import javafx.util.Duration;

public class RotateTransitionExample extends Application {
   @Override
   public void start(Stage stage) {
      //Creating a hexagon
      Polygon hexagon = new Polygon();

      //Adding coordinates to the hexagon
      hexagon.getPoints().addAll(new Double[]{
         200.0, 50.0,
         400.0, 50.0,
         450.0, 150.0,
         400.0, 250.0,
         200.0, 250.0,
         150.0, 150.0,
      });
      //Setting the fill color for the hexagon
      hexagon.setFill(Color.BLUE);

      //Creating a rotate transition
      RotateTransition rotateTransition = new RotateTransition();

      //Setting the duration for the transition
      rotateTransition.setDuration(Duration.millis(1000));

      //Setting the node for the transition
      rotateTransition.setNode(hexagon);

      //Setting the angle of the rotation
      rotateTransition.setByAngle(360);

      //Setting the cycle count for the transition
      rotateTransition.setCycleCount(50);

      //Setting auto reverse value to false
      rotateTransition.setAutoReverse(false);

      //Playing the animation
      rotateTransition.play();

      //Creating a Group object
      Group root = new Group(hexagon);

      //Creating a scene object
      Scene scene = new Scene(root, 600, 300);

      //Setting title to the Stage
      stage.setTitle("Rotate transition example ");

      //Adding scene to the stage
      stage.setScene(scene);

      //Displaying the contents of the stage
      stage.show();
   }
   public static void main(String args[]){
      launch(args);
   }
}

使用以下命令,从命令提示符编译并执行已保存的 java 文件。

javac --module-path %PATH_TO_FX% --add-modules javafx.controls RotateTransitionExample.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls RotateTransitionExample

执行后,上述程序会生成如下所示的 JavaFX 窗口。

rotate transition