使用时间轴动画一个弧

时间:2013-05-01 09:32:07

标签: animation javafx-2 javafx

在我的smithchart项目中,我试图为弧形设置动画。我通过f计算了开始和停止角度,它返回一个双精度但无法找到使用该角度的方法。该点是具有双重类型的角度,不能在接受WriteableValue的KeyValue中使用。

double angle;
angle = f();
KeyValue keyAngle = new KayValue(angle, 360.0);

同样向WritableValue投射角度无效。 有没有办法让这项工作?

1 个答案:

答案 0 :(得分:1)

Animation API使用属性(实现WritableValue)。因此,如果您想使用动画更改弧的startAngle,则应向Arc#startAngleProperty()提供KeyValue

    KeyValue kv = new KeyValue(arc.startAngleProperty(), my_double_angle_value);

动画弧的示例:

    Arc arc = ArcBuilder.create()
            .centerX(150)
            .centerY(150)
            .radiusX(100)
            .radiusY(50)
            .startAngle(0)
            .length(30)
            .type(ArcType.ROUND)
            .fill(Color.RED)
            .build();

    Pane root = new Pane();
    root.getChildren().add(arc);

    Scene scene = new Scene(root, 300, 250);
    primaryStage.setTitle("Hello Arc!");
    primaryStage.setScene(scene);
    primaryStage.show();

    KeyValue kv = new KeyValue(arc.startAngleProperty(), 360);
    KeyFrame kf = new KeyFrame(Duration.seconds(3), kv);

    Timeline timeline = new Timeline();
    timeline.setAutoReverse(false);
    timeline.setCycleCount(Timeline.INDEFINITE);
    timeline.getKeyFrames().add(kf);
    timeline.play();