在a中
KeyValue,第一个参数应为a
Writablevalue,例如
circle.centerXProperty(),代表初始坐标,例如
x。第二个参数应该是类型兼容的值,在这种情况下
x,就是射d应向其移动的坐标。随着时间线播放,
Writablevalue将会相应更新。添加一秒钟
KeyValue以驱动
y坐标。
在此处看到的第一个示例中,三个实例
KeyValue将图形从其初始位置移动到其目的地位置,该位置是
size沿每个坐标轴的单位。在此相关示例中,图形将形状点移动
p1到
p2。
在下面的例子中,
Circle移动平行于
x间轴
100和
500。同时,它们
Circle平行于抛物线 y = –4( x –½)2
+1 定义的
y轴之间
300并
100跟随其移动的轴,其顶点(1 / 2,1)且 x
在0和1处相交。根据API的要求,在单位正方形上实现抛物线路径模型的实现。您可以通过在关键帧中更改高度与宽度的比率来更改仰角,例如
curve()__
curve()``curve()
KeyValue xKV = new KeyValue(c.centerXProperty(), 200);KeyValue yKV = new KeyValue(c.centerYProperty(), 0, new Interpolator() {…});
import javafx.animation.Interpolator;import javafx.animation.Keyframe;import javafx.animation.KeyValue;import javafx.animation.Timeline;import javafx.application.Application;import javafx.scene.Group;import javafx.scene.Scene;import javafx.scene.paint.Color;import javafx.scene.shape.Circle;import javafx.scene.shape.Line;import javafx.stage.Stage;import javafx.util.Duration;public class Test extends Application { @Override public void start(Stage primaryStage) { primaryStage.setTitle("Test"); Group group = new Group(); Scene scene = new Scene(group, 600, 350); scene.setFill(Color.BLACK); primaryStage.setScene(scene); primaryStage.show(); Circle c = new Circle(100, 300, 16, Color.AQUA); Line l = new Line(100, 300, 500, 300); l.setStroke(Color.AQUA); group.getChildren().addAll(c, l); final Timeline timeline = new Timeline(); timeline.setCycleCount(Timeline.INDEFINITE); timeline.setAutoReverse(false); KeyValue xKV = new KeyValue(c.centerXProperty(), 500); KeyValue yKV = new KeyValue(c.centerYProperty(), 100, new Interpolator() { @Override protected double curve(double t) { return -4 * (t - .5) * (t - .5) + 1; } }); Keyframe xKF = new Keyframe(Duration.millis(2000), xKV); Keyframe yKF = new Keyframe(Duration.millis(2000), yKV); timeline.getKeyframes().addAll(xKF, yKF); timeline.play(); } public static void main(String[] args) { launch(args); }}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)