JavaFX动画
我已经阅读了一些JavaFX教程,我对所使用的动画系统有一些问题JavaFX动画,javafx,key-value,Javafx,Key Value,我已经阅读了一些JavaFX教程,我对所使用的动画系统有一些问题 Timeline timeline = new Timeline(); Node circle = circles; timeline.getKeyFrames().addAll( new KeyFrame(Duration.ZERO, // set start position at 0 new KeyValue(circle.tran
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();
}
我不明白的是translateProperty()函数(和Y)的用法以及KeyValue构造函数中随机数的用途。我理解这个过程的方式是创建了两个关键帧,在两个帧之间插值,KeyValue对象只是节点的不同状态,但我不确定这是否正确
我正在看的教程如下:
我只是在上面的代码中使用了一个圆来简化事情。代码在40秒内将一个圆从一个随机位置移动(转换)到另一个随机位置。第一个关键帧指定起始平移坐标。第二个关键帧指定端点平移坐标。JavaFX动画子系统负责在场景后面的中间帧上插值平移关键值
代码可以设置不同属性的动画,例如缩放或旋转。它可以使用绝对值,而不是随机值。它只是使用了它所使用的属性和值,因为它们指定了作者在本例中试图实现的效果。代码在40秒内将一个圆从一个随机位置移动(翻译)到另一个随机位置。第一个关键帧指定起始平移坐标。第二个关键帧指定端点平移坐标。JavaFX动画子系统负责在场景后面的中间帧上插值平移关键值
代码可以设置不同属性的动画,例如缩放或旋转。它可以使用绝对值,而不是随机值。它只是使用了它所使用的属性和值,因为它们指定了作者在本例中试图实现的效果。如果我理解你的说法正确,那么上面的代码,特别是随机值只是告诉程序在40秒内从一个坐标移动到另一个坐标?我想我不明白的是为什么它不会像newkeyValue(circle.translateYProperty(random()*600))那样编写;然后?
KeyFrame
标记时间点,KeyValue
标记专用属性在该时间点应具有的值。在给定的示例中,属性translateY
必须在40秒处有值random()*600
。@SergeyGrinev,谢谢,我想我现在明白了。如果我正确理解您的说法,上面的代码,特别是随机值,只需告诉程序在40秒内从一个坐标移动到另一个坐标?我想我不明白的是为什么它不会像newkeyValue(circle.translateYProperty(random()*600))那样编写;然后?KeyFrame
标记时间点,KeyValue
标记专用属性在该时间点应具有的值。在给定的示例中,属性translateY
必须在40秒处有值random()*600
。@SergeyGrinev谢谢,我想我现在知道了。