JavaFX TranslateTransition类

它在指定的持续时间内将节点从一个位置转换到另一个位置。转换是通过定期更新节点的 translateX 和 translateY 属性来完成的。

转换的速度取决于周期数,转换将在指定的持续时间内进行。

在 JavaFX 中,TranslateTransition 由类 javafx.animation.TranslateTransition 表示。我们需要实例化这个类,以便在对象上应用适当的 Translate Transition。

1 TranslateTransition类的属性

属性 描述 setter方法
byX 这是一个双重类型的属性。它表示增加的停止 X 因子值。 setByX(double value)
byY 这是一个双重类型的属性。它表示增加的停止 Y 因子值。 setByY(double value)
byZ 这是一个双重类型的属性。它表示增加的停止 Z 因子值。 setByZ(double value)
duration 这是 Duration 类的对象类型属性。它代表尺度转换的持续时间。 setDuration(Duration value)
 fromX 这是一个双重类型的属性。它表示 ScaleTransition 的起始 X 值。 setFromX(double value)
fromY 这是一个双重类型的属性。它表示 ScaleTransition 的起始 Y 值。 setFromY(double value)
fromZ 这是一个双重类型的属性。它表示 ScaleTransition 的起始 Z 值。 setFromZ(double value)
node 这是类 Node 的对象类型属性。它表示应用了比例转换。 setNode(Node node)
toX 这是一个双重类型的属性。它表示缩放转换的停止 X 缩放值。 setToX(double value)
toY 这是一个双重类型的属性。它表示缩放转换的停止 Y 缩放值。 setToY(double value)
toZ 这是一个双重类型的属性。它表示缩放转换的停止 Z 缩放值。 setToZ(double value)

2 TranslateTransition类的构造函数

该类包含下面给出的三个构造函数。

  1. public TranslateTransition() :使用默认参数创建TranslateTransition的新实例。
  2. public TranslateTransition(Duration duration) :创建具有指定持续时间的 TranslateTransition 的新实例。
  3. public TranslateTransition(Duration duration, Node node) :使用指定的持续时间和节点创建新的 Translate Transition 实例。

3 TranslateTransition类的例子

在以下示例中,我们制作了一个在 X 方向上将自身平移 400 的圆。

package com.yiidian;

import javafx.animation.TranslateTransition;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
import javafx.util.Duration;

public class Translate_Transition extends Application {  
  
    @Override  
    public void start(Stage primaryStage) throws Exception {  
        //Creating the circle   
        Circle cir = new Circle(50,100,50);  
          
        //setting color and stroke of the cirlce  
        cir.setFill(Color.RED);  
        cir.setStroke(Color.BLACK);  
          
        //Instantiating TranslateTransition class   
        TranslateTransition translate = new TranslateTransition();  
          
        //shifting the X coordinate of the centre of the circle by 400   
        translate.setByX(400);  
          
        //setting the duration for the Translate transition   
        translate.setDuration(Duration.millis(1000));  
          
        //setting cycle count for the Translate transition   
        translate.setCycleCount(500);  
          
        //the transition will set to be auto reversed by setting this to true   
        translate.setAutoReverse(true);  
          
        //setting Circle as the node onto which the transition will be applied  
        translate.setNode(cir);  
          
        //playing the transition   
        translate.play();  
          
        //Configuring Group and Scene   
        Group root = new Group();  
        root.getChildren().addAll(cir);  
        Scene scene = new Scene(root,500,200, Color.WHEAT);  
        primaryStage.setScene(scene);  
        primaryStage.setTitle("一点教程网:Translate Transition example");  
        primaryStage.show();  
          
    }  
    public static void main(String[] args) {  
        launch(args);  
    }  
  
}  
      

输出结果为:

热门文章

优秀文章