Я полагаю, вы столкнулись с ошибкой в kivy Animation
. Если вы просто используете простой Animation
, то запуск этого Animation
на нескольких Widgets
должен работать нормально. Ошибка возникает, когда вы используете Sequence
(Animations
, связанный с '+'). Sequences
работает, запуская первый Animation
и привязывая внутренний on_complete
метод, который запускает следующий Animation
в Sequence
. Когда вы вызываете start
, этот метод on_complete
связывается. Но как только первый Animation
на первом Widget
в Sequence
завершается, запускается второй Animation
и метод on_complete
не связан. Теперь, когда первый Animation
на втором Widget
завершается, on_complete
не вызывается (не был связан после завершения первого Widget
), а второй Animation
не запускается.
Вот код из Sequence
:
def on_anim1_complete(self, instance, widget):
self.anim1.unbind(on_complete=self.on_anim1_complete)
self.anim2.start(widget)
В вашем случае, похоже, Animation
не начинается со второго Widget
, а потому что ваш первый Animation
не ' на самом деле ничего не оживляет, вы этого не видите.
К сожалению, существует не так много альтернатив, чтобы избежать этой проблемы.
- Вы можете создать полную копию
Animation
во второй раз (copy()
или deepcopy()
не будет работать), и просто используйте две разные анимации (по одной для каждой Widget
). - Вы можете сделать свою собственную последовательность, просто используя простой
Animations
и используйте свой on_complete
, чтобы начать следующий Animation
. Удобно, что аргументы on_complete
включают анимированный виджет, который вам нужен для следующего вызова start()
. - В некоторых ситуациях вы можете анимировать один контейнер (например,
Layout
). Поскольку это анимация только одного Widget
, последовательность должна работать правильно.