none
三幅图片替换的动画效果 RRS feed

  • 问题

  • 完成一个动画效果,让一个图片A替换为另一幅图片B。过几秒钟后又恢复为初始的图片A。我这样写就可以:

                dispatcherTimer = new DispatcherTimer();
                dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
                dispatcherTimer.Interval = new TimeSpan(0, 0, 5);
                dispatcherTimer.Start();

    然后在dispatcherTimer_Tick中将图片换为以前的A。

    现在我需要这样的动画。在A换为B后,B又换为C。然后B,C之间不停的变换。如一个人刚开始立正(图片A),然后踢毽子。在踢毽子,基本就是两个动作不停的变化(B,C两幅图片不停切换)。过了几秒,又回到图片A。这种效果该如何实现啊。我定义两个DispatcherTimer。但是总是有问题。请指教。


    勿以恶小而为之,勿以善小而不为
    2009年9月14日 11:49

答案

  • 楼主你好,
     你只要一个DispatchTimer就行了,用两个的话更难控制,下面是一个相关的link,大概内容是有三个图画片,从第一个到第二,三个显示一遍. http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/bc0fbe9d-fc34-4958-83ee-5e1bbdedb270/ 但是这里你的要求稍微有些不同,你要求在第三个图片显示完之后,又回到第二个,之后第二个第三个不断反复,最后再显示第一个,我分开来讲解.
    -->A:又回到第二个,之后第二个第三个不断反复

    你在我上面的link中,可以看到我用一个index的变量来控制图片的显示顺序,在第三个显示完以后,你可以用Index/2来回到第二个,再用Index++.
    -->B:最后再显示第一个

    设置一个计数器变量,达到某一值是就回到第一个.
    如有疑问,请继续回复。谢谢。
    Jim Zhou -MSFT
    2009年9月15日 7:41
    版主

全部回复

  • 楼主你好,
     你只要一个DispatchTimer就行了,用两个的话更难控制,下面是一个相关的link,大概内容是有三个图画片,从第一个到第二,三个显示一遍. http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/bc0fbe9d-fc34-4958-83ee-5e1bbdedb270/ 但是这里你的要求稍微有些不同,你要求在第三个图片显示完之后,又回到第二个,之后第二个第三个不断反复,最后再显示第一个,我分开来讲解.
    -->A:又回到第二个,之后第二个第三个不断反复

    你在我上面的link中,可以看到我用一个index的变量来控制图片的显示顺序,在第三个显示完以后,你可以用Index/2来回到第二个,再用Index++.
    -->B:最后再显示第一个

    设置一个计数器变量,达到某一值是就回到第一个.
    如有疑问,请继续回复。谢谢。
    Jim Zhou -MSFT
    2009年9月15日 7:41
    版主
  • 非常感激!呵呵。版主总是能给大家最想要的答案啊。多谢多谢。刚开始我还想着用storyboard呢。现在还用以前的方法就搞定了。
    勿以恶小而为之,勿以善小而不为
    2009年9月15日 9:04
  • 呵呵,很高兴我的方案能解决你的问题,我们用storyboard一般是显示一些动画,在这个例子中,因为最关键的是切换图片的显示,而不是动画,所以用上面的DispatchTimer方法更方便一些,我看到你在WPF论坛也比较活跃,大家一起讨论,共同进步。

    谢谢。


    Jim Zhou -MSFT
    2009年9月15日 13:10
    版主