【问题标题】:Kivy Fade-In AnimationKivy 淡入动画
【发布时间】:2014-12-12 15:35:29
【问题描述】:

有没有办法在 kivy 的画布矩形背景上获得淡入/淡出动画?我通过使用Clock.schedule_interval() 函数进行了尝试。但是在并发和数据增加方面出现了几个问题。

我的一个尝试如下所示:

 def calendarClicked(self, *args):
    self.alpha = 1.0
    self.alphaDelta = 0.01

    self.root.canvas.add(Color(1,0,0,self.alpha))
    self.root.canvas.add(Rectangle(size=self.root.size))

    def fadeIn(self, dt):

        self.alpha -= self.alphaDelta
        self.root.canvas.add(Color(1,0,0,self.alpha))
        self.root.canvas.add(Rectangle(size=self.root.size))

        return self.alpha >= 0.5

    Clock.schedule_interval(partial(fadeIn, self), 0.1)   

另一个想法是使用kivy.animation。但我找不到一种方法来编辑颜色而不是对象/小部件的位置。

提前致谢!

【问题讨论】:

    标签: animation canvas fadein fadeout kivy


    【解决方案1】:

    您可以像使用小部件一样在画布指令上使用Animation。问题是您根本没有修改画布指令,您只是不断添加越来越多的画布指令。您只需添加一次指令,然后通过Animation 更新值。

    def calendarClicked(self, *args):
        if not hasattr(self, 'color'):
            with self.root.canvas:
                self.color = Color(1, 0, 0, 0)
                self.rect = Rectangle(size=self.root.size)
    
        self.color.a = 0
        anim = Animation(a=1.0)
        anim.start(self.color)
    

    【讨论】:

      猜你喜欢
      • 2014-01-20
      • 2012-12-18
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 2016-02-07
      • 2019-01-01
      相关资源
      最近更新 更多