ボールが円の 4 つのセクターの 1 つをランダムに移動するアニメーションを作成したいと考えています。これは 5 回発生します。そのため、while ループ (i<5) を作成し、ランダム関数を呼び出します。ループし、ランダムな fn 値に従っていくつかの x 値と y 値をアタッチする場合、while ループ内とキー フレーム値でタイムライン オブジェクトを作成します。これらの x 値と y 値を使用します。しかし、プログラムを実行するとどうなりますか。すべての値が作成されています (x と y の値は println で表示されます) が、最後の x と y の値 (i=5 の場合) のみが画面にレンダリングされます。前の値のアニメーション (1<=i< =4)レンダリングされていません。どこが間違っているのか教えてください。
public function run(args:String[]) {
変数 i=0; while(i<5) { var z=gety(); println(z); // var relativeTime:Duration=0s; if(z==1) {xbind=120; ybind=80; } そうでなければ (z==2) {xbind=120; ybind=120; } その他の場合 (z==3) { xbind=80; ybind=120; } その他の場合 (z==4) { xbind=80; ybind=80; }
var t:Timeline=タイムライン{
//time: bind pos with inverse;
repeatCount: Timeline.INDEFINITE
autoReverse: true
keyFrames:
[
KeyFrame{
time: 0s values: [ x => 100.0,y => 100.0]},
KeyFrame{time: 2s values:[x => xbind tween Interpolator.LINEAR,
y => ybind tween Interpolator.LINEAR,]
},
]
}//end timeline
i++;
t.play();
Thread.sleep(2000);
}//end while
}