public virtual void SetSlider(Slider slider) { if (slider == null) { if (m_slider != null) { m_slider.ValueChanged -= OnFrame; } return; } if (slider == m_slider) { return; } m_slider = slider; m_slider.ValueChanged += OnFrame; Storyboard.SetTarget(m_animator, m_slider); m_controller_state = SequenceControllerState.RESET; }
public void Play() { var animation = m_animator.Children[0] as DoubleAnimation; var time = new TimeSpan((long)(m_slider.Value / 30 * 10000000)); switch (m_controller_state) { case SequenceControllerState.RESET: m_controller_state = SequenceControllerState.PLAY; m_animator.Begin(); PlayAudio(time); break; case SequenceControllerState.READY: m_controller_state = SequenceControllerState.PLAY; m_animator.Begin(); PlayAudio(time); break; case SequenceControllerState.PLAY: var value = m_slider.Value; m_controller_state = SequenceControllerState.PAUSE; m_animator.Stop(); StopAudio(); m_slider.Value = value; break; case SequenceControllerState.PAUSE: animation.From = m_slider.Value; m_controller_state = SequenceControllerState.PLAY; m_animator.Begin(); PlayAudio(time); break; } }