【问题标题】:Animation: Timer vs Idle动画:计时器与空闲
【发布时间】:2009-05-06 11:23:28
【问题描述】:

在其他地方有一个 similar thread,但它专注于游戏编程,我发现它与带有一些“额外糖”的常规 gui 应用程序有点不同。

驱动小型 gui 动画(如展开/折叠面板、发光按钮等)的正确方法是什么?

最好设置一个计时器以定期触发,还是使用空闲事件更好?

WPF 如何驱动其动画?

我知道有很多关于什么是最好的意见,所以让我们把它们都收集起来:-)

更新:好的。我认为这有点不清楚。我没有使用 WPF,我对如何在 WPF 中触发动画不感兴趣。我所追求的是讨论为什么时间比使用 onidle 事件驱动动画更好或更坏。不启动它,驱动它。

【问题讨论】:

  • 所以我们因为您没有澄清问题而直接给出答案而受到处罚?也许下次您可以澄清问题,然后等待一段时间,然后再否决答案。很抱歉我的回答没有帮助。
  • 好吧,老实说,我不明白为什么需要清除任何东西。如果您阅读完整的问题,并查看提到的其他线程,很明显我对如何制作混合故事板不感兴趣。但无论如何 - 我可以等待反对票......
  • 对不起,我没有查看其他线程。也许那会清除它。我添加了一个可能更合适的新答案。如果它没有帮助,请随意投反对票......我知道它现在至少是主题! :-)
  • 是的,我发现这个答案更符合主题。竖起大拇指:-)

标签: animation timer


【解决方案1】:

您如何驱动动画应该基于您的处理优先级。

如果您使用计时器,您将获得更一致的调用。这可以让您与更重要的处理能力进程竞争。通过 OnIdle 驱动允许其他进程负责,但这也意味着动画可能会被饿死。

正确的选择取决于您的具体优先事项。

我不确定 WPF 如何处理这个问题,但重要的是让动画基于绝对开始时间而不是在每次调用时递增动画,因为动画可能不会定期调用。

【讨论】:

    【解决方案2】:

    也许我弄错了,但是如果 WPF 本身支持动画,为什么还需要计时器/空闲事件? 您可能想看看 MSDN 上的动画概述文章:http://msdn.microsoft.com/en-us/library/ms752312.aspx

    【讨论】:

      猜你喜欢
      • 2017-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      相关资源
      最近更新 更多