Kivy动画-减少持续时间?



我在kivy中有一个小部件类,我在屏幕上动画。到那时,我想慢慢减少动画持续时间,这样小部件就会移动得更快。我的代码改变了持续时间,但对屏幕没有影响。为什么?

我的widget类:

class Obstacle3(Widget):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.animation = Animation(x =-self.width, duration=2)
Clock.schedule_interval(self.faster, 2)
self.anim = True
self.animation.bind(on_complete=self.vanish)
self.animation.start(self)
def faster(self, *args):
if self.animation._duration <= 0.4:
self.animation._duration = self.animation._duration 
else:
self.animation._duration = self.animation._duration - 0.4

动画开始后改变持续时间将没有效果。但是您可以在启动Animation之前设置transition属性。要使动画在动画后期更快,请尝试使用in_circ,in_cubic,in_quart,in_quintin_expo

另一种方法是调用self.animation.stop(),然后在想要提高动画速度时启动另一个Animation

最新更新