我在 kivy 中有小部件类,我在屏幕上制作动画。当我想慢慢减少动画持续时间时,小部件会移动得更快。我的代码更改了持续时间,但在屏幕上没有影响。为什么?
<块引用>我的小部件类:
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
答案 0 :(得分:0)
在动画开始后更改持续时间将不起作用。但是您可以在启动之前设置 transition
的 Animation
属性。要使动画在动画后期运行得更快,请尝试使用 in_circ
、in_cubic
、in_quart
、in_quint
或 in_expo
。
另一种方法是调用self.animation.stop()
,然后在您想提高动画速度时再启动另一个Animation
。