0

我一直在阅读一些 JavaFX 教程,并且对使用的动画系统有一些疑问。

    Timeline timeline = new Timeline();
    Node circle = circles;
    timeline.getKeyFrames().addAll(
                new KeyFrame(Duration.ZERO, // set start position at 0
                   new KeyValue(circle.translateXProperty(), random() * 800),
                   new KeyValue(circle.translateYProperty(), random() * 600)),

                new KeyFrame(new Duration(40000), // set end position at 40s
                   new KeyValue(circle.translateXProperty(), random() * 800),
                   new KeyValue(circle.translateYProperty(), random() * 600)));

    // play 40s of animation
    timeline.play();
    primaryStage.show();
}

我不明白的是 translateXProperty() 函数(和 Y)的使用以及 KeyValue 构造函数中随机数的用途。我理解该过程的工作方式是您创建了两个 KeyFrames,您在两个帧之间进行插值,并且 KeyValue 对象只是节点的不同状态,但我不确定这是否正确。

我正在看的教程在这里:http ://docs.oracle.com/javafx/2/get_started/animation.htm

我只是在上面的代码中使用了一个圆圈来简化事情。

4

1 回答 1

4

代码在 40 秒内将一个圆圈从一个随机位置移动(平移)到另一个位置。第一个关键帧指定起始平移坐标。第二个关键帧指定结束平移坐标。JavaFX 动画子系统负责在幕后跨中间帧插入翻译键值。

代码可以为不同的属性设置动画,例如缩放或旋转。它可以使用绝对值而不是随机值。它只是使用了它所做的属性和值,因为它们指定了作者在这种情况下试图达到的效果。

于 2012-06-09T19:12:25.860 回答