0
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通过传递 aDuration和 an来创建 a EventListener- 不多也不少。

与需要作为参数Timeline相关联的类的所有构造函数。但是,在上面的代码中并非如此。代码编译,甚至给出所需的输出。 EventHandlerKeyValues

为什么?

文档:http ://docs.oracle.com/javafx/2/api/javafx/animation/KeyFrame.html

4

1 回答 1

3

您正在使用的构造函数是

public KeyFrame(Duration time,
        EventHandler<ActionEvent> onFinished,
        KeyValue... values)

该参数KeyValue...可变参数参数。如果您不向该方法传递任何参数,它将是一个空数组。

于 2013-10-21T02:38:53.687 回答