Я считаю, что ваш код в основном должен работать, однако есть некоторые проблемы. Если blinky
Label
является частью ScreenOne
, то вы не увидите мигания, потому что нажатие Button
, которое начинает мигание, также переключается на ScreenTwo
. Нажатие Button
на ScreenTwo
возвращает к ScreenOne
, и мигание должно быть видно.
Если blinky
является частью ScreenTwo
, то blinky
id
недопустимо в пределахScreenOne
.
Если вы хотите, чтобы мигание начиналось без нажатия Button
, затем вызовите метод blink_animation()
из метода build()
, используя Clock.schedule_once()
. Сначала удалите вызов blink_animation()
из Button
on_press:
, например:
Button:
background_color: 0, 0, 0, 0
on_press:
# You can define the duration of the change
# and the direction of the slide
root.manager.transition.direction = 'up'
root.manager.transition.duration = 1
root.manager.current = 'screen_two'
Затем вызовите метод blink_animation()
из метода build()
и измените blink_animation()
Метод:
class KivyTut2App(App):
def blink_animation(self, dt):
anim = Animation(alpha=0, duration=0.5) + Animation(alpha=1, duration=0.5)
anim.repeat = True
anim.start(screen_manager.get_screen('screen_one').ids.blinky)
def build(self):
Clock.schedule_once(self.blink_animation)
return screen_manager