Timeline pongAnimation = TimelineBuilder.create()
.keyFrames(
new KeyFrame(
new Duration(10.0),
new EventHandler<ActionEvent>() {
public void handle(javafx.event.ActionEvent t) {
checkForCollision();
int horzPixels = movingRight ? 1 : -1;
int vertPixels = movingDown ? 1 : -1;
centerX.setValue(centerX.getValue() + horzPixels);
centerY.setValue(centerY.getValue() + vertPixels);
}
}
)
)
.cycleCount(Timeline.INDEFINITE)
.build();
这是我正在阅读的书中的JavaFX代码。它通过传递
KeyFrame
和Duration
来创建EventListener
-不多也不少。与
Timeline
关联的所有EventHandler
类的构造函数都需要KeyValues
作为参数。但是,在上面的代码中情况并非如此。该代码编译,甚至给出所需的输出。为什么?
文件:http://docs.oracle.com/javafx/2/api/javafx/animation/KeyFrame.html
最佳答案
您正在使用的构造函数是
public KeyFrame(Duration time,
EventHandler<ActionEvent> onFinished,
KeyValue... values)
参数
KeyValue...
是varargs参数。如果您不向该方法传递任何参数,则它将是一个空数组。