JavaFX ScaleTransition类

此转换在指定的持续时间内按指定的因子在 X、Y 和 Z 三个方向中的任何一个或所有方向上对节点的缩放进行动画处理。

在 JavaFX 中,ScaleTransition由类javafx.animation.ScaleTransition表示。我们需要实例化这个类以生成适当的比例转换。

ScaleTransition类的例子

这是一个缩放动画的例子

package com.yiidian;

import javafx.animation.ScaleTransition;
import javafx.application.Application;
import javafx.scene.CacheHint;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
import javafx.util.Duration;

public class ScaleTransitionTest extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        Group root = new Group();
        primaryStage.setTitle("一点教程网:Scale Transition example");
        primaryStage.setScene(new Scene(root, 300, 250));

        Rectangle rect = new Rectangle (50, 50, 100, 100);
        rect.setArcHeight(50);
        rect.setArcWidth(50);
        rect.setFill(Color.VIOLET);

        Group group1 = new Group();
        group1.getChildren().add(rect);

        ScaleTransition scaleTransition = new ScaleTransition(Duration.millis(1000), group1);
        // 中心放大至两倍
        scaleTransition.setToX(2);
        scaleTransition.setToY(2);
        group1.setCacheHint(CacheHint.SPEED);

        scaleTransition.setOnFinished(event -> {
            // 缩放后设置回QUALITY模式 显示清晰
            group1.setCacheHint(CacheHint.QUALITY);
        });
        scaleTransition.play();

        root.getChildren().add(group1);
        primaryStage.show();
    }
}

输出结果为:

热门文章

优秀文章