none
关于动画的小问题 RRS feed

  • 问题

  • 写了一个Storyboard设置AutoReverse = true,

    但是我想让他在播放到末尾还没有回放时停下来,请问如何做到。

    我写了一种方法使用DispatcherTimer

    设置Interval属性为Storyboard的Duration的长度,但是效果很不好……

    请问有没有更好的方法

    2014年8月28日 5:47

答案

  • 你能把你的StoryBoard和代码Share给我测试一下吗?之前的确会有StoryBoard卡顿的情况出现,如果你StoryBoard在运行的时候就有卡顿现象的话(假设一共有10帧,在第4-8帧卡顿),假设在卡顿时暂停(6帧),那么当前屏幕为卡顿前的状态(4帧),但是恢复的时候又是从暂定的时候开始(6帧),跟卡顿前的状态不一样,造成了你所说的效果不好 (直接从6帧开始播放)。

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    • 已标记为答案 孟云帆 2014年9月4日 9:34
    2014年8月28日 11:57
    版主

全部回复

  • 可以不设置AutoReverse,想要开始的时候 把动画返过来么?
    2014年8月28日 8:35
  • 你好 孟云帆,

    StoryBoard有一个Stop()的方法,可以么?只要你在正确的时间控制StoryBoard停止或者前进就可以了。

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2014年8月28日 9:27
    版主
  • 是这样的如果我自己再写一个刚好相反的Storyboard不能实现与之相反的效果,因为反过来的时候会比较卡,所以不行……

    就是想问一下能不能在时间轴走到尽头还没有往回走的时候停下来

    2014年8月28日 11:43
  • 感谢你的回答

    是这样的,因为另写一个与之相反Storyboard很简单,但是这样的话会非常卡顿。所以我就希望只用一个Storyboard,把它的AutoReserve设置为true。并且按照Storyboard的Duration设置一个计时器,当Storyboard的时间轴走到尽头还没有往回走的时候。把Storyboard暂停下来(不能Stop),然后当另外一个事件被触发的时候在调用Resume()

    但是不知道为这么这样做有时候效果并不好,没有回到原来的位置。但有时候表现有很好……不解这是为什么……

    望指教……

    2014年8月28日 11:52
  • 你能把你的StoryBoard和代码Share给我测试一下吗?之前的确会有StoryBoard卡顿的情况出现,如果你StoryBoard在运行的时候就有卡顿现象的话(假设一共有10帧,在第4-8帧卡顿),假设在卡顿时暂停(6帧),那么当前屏幕为卡顿前的状态(4帧),但是恢复的时候又是从暂定的时候开始(6帧),跟卡顿前的状态不一样,造成了你所说的效果不好 (直接从6帧开始播放)。

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    • 已标记为答案 孟云帆 2014年9月4日 9:34
    2014年8月28日 11:57
    版主