JavaFX StokeTransition类

它为节点的笔触颜色设置动画,以便笔触颜色可以在指定的持续时间内在两个颜色值之间波动。

在 JavaFX 中,类 javafx.animation.FillTransition 表示填充过渡。我们需要实例化此类以创建适当的填充过渡。

1 StokeTransition类的属性

属性 描述 setter方法
duration 这是 Duration 类的对象类型属性。它代表笔画过渡的持续时间。 setDuration(Duration duration)
fromValue 这是一个颜色类型属性。它表示笔画过渡颜色的初始值。 setFromValue(Color value)
shape 这是 Shape 类的对象类型属性。它表示将应用描边过渡的形状。 setShape(Shape shape)
toValue 这是颜色类型属性。它表示笔画过渡颜色的目标值。 setToValue(Color value)

2 StokeTransition类的构造函数

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

  1. public StokeTransition() :使用默认参数创建新的 StrokeTransition 实例。
  2. public StokeTransition(Duration duration) :创建具有指定持续时间值的 Stroke Transition 的新实例
  3. public StokeTransition(Duration duration, Color fromValue, Color toValue) :使用指定的持续时间、颜色的初始值和颜色的目标值创建新的 StrokeTransition 实例。
  4. public StokeTransition(Duration duration, Shape shape) :使用指定的持续时间和要应用过渡的形状创建 StrokeTransition 的新实例。
  5. public StokeTransition(Duration duration, Shape shape, Color fromValue, Color toValue) :使用指定的持续时间、形状、颜色的初始值和颜色的目标值创建新的 StrokeTransition 实例。

3 StokeTransition类的例子

在以下示例中,圆圈的笔触从黑色变为紫色。

package com.yiidian;

import javafx.animation.StrokeTransition;
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 Stroke_Transition extends Application {
    public static void main(String[] args) {
        launch(args);
    }
    @Override
        public void start(Stage primaryStage) throws Exception {
            //Creating Circle   
            Circle cir = new Circle(200,150,100);
            //Setting stroke and color for the circle
            cir.setStroke(Color.BLUE);
            cir.setFill(Color.RED);
            cir.setStrokeWidth(10);

            //Instantiating StrokeTransition class
            StrokeTransition stroke = new StrokeTransition();

            //The transition will set to be auto reserved by setting this to true
            stroke.setAutoReverse(true);

            //setting cycle count for the Stroke transition
            stroke.setCycleCount(500);

            //setting duration for the Stroke Transition
            stroke.setDuration(Duration.millis(500));

            //setting the Initial from value of the Stroke color
            stroke.setFromValue(Color.BLACK);

            //setting the target value of the Stroke color
            stroke.setToValue(Color.PURPLE);

            //setting polygon as the shape onto which the Stroke transition will be applied
            stroke.setShape(cir);

            //playing the Stroke transition
            stroke.play();

            //Configuring Group and Scene
            Group root = new Group();
            root.getChildren().addAll(cir);
            Scene scene = new Scene(root,420,300,Color.WHEAT);
            primaryStage.setScene(scene);
            primaryStage.setTitle("一点教程网:Stroke Transition example");
            primaryStage.show();

        }
}  

输出结果为:

热门文章

优秀文章