为什么环会移动 x 和 y?

问题描述 投票:0回答:1

如何使动画静态,使其不会在 x 和 y 方向上移动? 我想在这个程序中自己画下载动画 您可以在这里观看视频:https://youtu.be/UFuHJoV-WJc

        Button asGuest = new Button("Login As Guest");
        asGuest.setPrefSize(120, 35);
        asGuest.setTranslateY(90);
        asGuest.setTranslateX(100);
        asGuest.setFont(font2);
        asGuest.setTextFill(Color.rgb(255,255,255));
        Arc arc = new Arc();
        arc.setCenterX(100.0f);
        arc.setCenterY(80.0f);
        arc.setRadiusX(25.0f);
        arc.setRadiusY(25.0f);
        arc.setStartAngle(45.0f);
        arc.setLength(270.0f);
        arc.setType(ArcType.OPEN);
        arc.setFill(null);
        arc.setStroke(Color.web("#25b09b"));
        arc.setStrokeWidth(5);
        arc.setVisible(false);

        RotateTransition rotateTransition = new RotateTransition();
        rotateTransition.setDuration(Duration.millis(1000));
        rotateTransition.setNode(arc);
        rotateTransition.setByAngle(360);
        rotateTransition.setCycleCount(RotateTransition.INDEFINITE);
        rotateTransition.setAutoReverse(false);
        arc.setTranslateX(100);
        arc.setTranslateY(80);
        asGuest.setOnAction(event -> {
            arc.setVisible(!arc.isVisible());
            if (arc.isVisible()) {
                rotateTransition.play();
            } else {
                rotateTransition.stop();
            }
            asGuest.setVisible(false);
        });
java javafx
1个回答
0
投票
    Button asGuest = new Button("Login As Guest");
asGuest.setPrefSize(120, 35);
asGuest.setTranslateY(90);
asGuest.setTranslateX(100);
asGuest.setFont(font2);
asGuest.setTextFill(Color.rgb(255,255,255));
Arc arc = new Arc();
arc.setCenterX(100.0f);
arc.setCenterY(80.0f);
arc.setRadiusX(25.0f);
arc.setRadiusY(25.0f);
arc.setStartAngle(45.0f);
arc.setLength(270.0f);
arc.setType(ArcType.OPEN);
arc.setFill(null);
arc.setStroke(Color.web("#25b09b"));
arc.setStrokeWidth(5);
arc.setVisible(false);

RotateTransition rotateTransition = new RotateTransition();
rotateTransition.setDuration(Duration.millis(1000));
rotateTransition.setNode(arc);
rotateTransition.setByAngle(360);
rotateTransition.setCycleCount(RotateTransition.INDEFINITE);
rotateTransition.setAutoReverse(false);
arc.setTranslateX(100);
arc.setTranslateY(80);
asGuest.setOnAction(event -> {
    arc.setVisible(!arc.isVisible());
    if (arc.isVisible()) {
        rotateTransition.play();
    } else {
        rotateTransition.stop();
    }
    asGuest.setVisible(false);
});

要使动画静态,使其不在 x 和 y 方向上移动,您可以删除应用于圆弧的 TranslateTransition。这将确保弧在整个动画中保持在同一位置

© www.soinside.com 2019 - 2024. All rights reserved.