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 コンストラクターでの乱数の目的です。プロセスが機能することを私が理解した方法は、2 つのフレーム間で補間した 2 つの KeyFrames を作成し、KeyValue オブジェクトは単にノードの異なる状態であるということでしたが、それが正しいかどうかはわかりません。

私が見ているチュートリアルはここにあります: http://docs.oracle.com/javafx/2/get_started/animation.htm

上記のコードでは、物事を単純化するために円を 1 つだけ使用しました。

4

1 に答える 1

4

このコードは、円をあるランダムな場所から別の場所に 40 秒間移動 (平行移動) します。最初のキーフレームは、移動の開始座標を指定します。2 番目のキーフレームは、移動の終了座標を指定します。JavaFX アニメーション サブシステムは、舞台裏で中間フレーム全体に変換キー値を補間します。

コードには、スケールや回転などのさまざまなプロパティをアニメーション化することができます。また、ランダムな値ではなく絶対値を使用することもできました。作成者がこのインスタンスで達成しようとしている効果を指定するため、プロパティと値を使用しただけです。

于 2012-06-09T19:12:25.860 に答える