Вопрос

У меня есть раскадровка, которая, кажется, сама останавливается случайным образом, я не могу на всю жизнь понять, почему.

Кажется, для остановки и случайных интервалов.

private void CreateStoryboard(int from)
    {
        int? targetTo;
        Duration dur;
        targetTo = 150;
        dur = 150;

        Int32Animation element = new Int32Animation();
        element.From = from;
        element.To = targetTo;
        element.Duration = dur;
        Storyboard.SetTargetProperty(element, new PropertyPath(CurrentFrameProperty));
        _filmstripStoryboard = new Storyboard {SpeedRatio = this.FrameRate};
        _filmstripStoryboard.Children.Add(element);
        _filmstripStoryboard.Completed += new EventHandler(FilmstripStoryboard_Completed);
         _filmstripStoryboard.Begin(this, true);
    }

Как вы можете заметить, я влияю на пользовательский CurrentFrameProperty " DP, у которого есть метод обратного вызова, который я распечатываю текущий кадр.

По какой-то причине, и я просто не знаю, почему раскадровка просто останавливается. Завершенное событие НЕ запускается, и метод обратного вызова перестает вызываться.

И я уверен, что я нигде не вызываю stop ().

Если у кого-то возникла эта проблема или она может помочь мне отладить ее, я был бы очень признателен.

Это было полезно?

Решение 2

Это были деконструкторы! Мои объекты со ссылкой на раскадровки и анимацию разрушались, поэтому анимация выглядела так, как будто замерзла.

ошибка пользователя:)

Другие советы

Ваш код должен работать. Я не уверен, что делает SpeedRatio = this.FrameRate, но вы можете легко протестировать свой код, удалив этот фрагмент. Я думаю, что какой-то другой фрагмент кода влияет на ваш DpendencyProperty, и этот многопоточный код кусает вас.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top