我想创建一个动画,球将在一个圆的4个扇区中的一个中移动5 times.so,我创建了一个while循环(i<5)并调用randomly.this函数。i然后创建一个if循环,并根据随机fn值附加一些x和y值。然后在while循环内创建一个timeline对象,在关键帧值中,当我运行程序时,我使用这些x和y values.but,会发生什么情况是所有的值都被创建(通过println可以看到x和y值),但是只有最后的x和y值(对于i=5)在screen.the动画中被渲染,因为之前的值(1<=i<=4)没有被rendered.Please提示我哪里错了?
公共函数运行(args:String[]){
var i=0;while(i<5) { var z=gety();println(z);// var relativeTime:Duration=0s;if(z==1) {xbind=120;ybind=80;} else if(z==2) {xbind=120;ybind=120;} else if(z==3) { xbind=80;ybind=120;} else if(z==4) { xbind=80;ybind=80;}
var t:Timeline=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}
发布于 2010-04-07 06:11:48
在循环中更新动画的限定值似乎是一种相对常见的反模式。更新时间轴中的绑定值是更好的解决方案。研究this post以获取代码片段。还要注意,使用阶段意味着您不需要将逻辑放入run()函数中。
https://stackoverflow.com/questions/2585073
复制相似问题