Как использовать обработчик события Completed в silverlight

-4

Onmouseover перемещает мое изображение вниз на 50 пикселей (раскадровка1)
Onmouseout перемещает мое изображение обратно вверх 50px (раскадровка2)


Моя проблема в том, что если вы быстро наведете курсор мыши, а затем снова отпустите, это заставляет заикаться, потому что раскадровка 1 не завершает анимацию, она останавливается, когда я нажимаю. Как я могу использовать обработчик обработанного события или какой-либо другой метод, чтобы принудительно завершить раскадровку1 до начала раскадровки2?


Я попытался подключить обработчик обработанных событий, который создает метод в моем С# -коде. В этом коде я попытался установить глобальное значение bool в true, если раскадровка завершилась, а затем в моем событии mouseout я сказал, что если мой bool не является правдой, тогда не выполняйте раскадровку2, которая не работает.

спросил(а) 2010-09-09T20:47:00+04:00 10 лет, 1 месяц назад
0
58

Примечание:


Первая анимация не является фактической остановкой, просто изменение значения перезаписывается раскадрой, которая работает последней. Раскадровки запускаются до тех пор, пока явно не будут остановлены, удерживая последние значения.


Решение:


Чтобы избежать заикания, вам нужно убедиться, что на вашем раскадровке onmouseout нет начальных значений. Только конечные значения. Затем он будет интерполировать обратно в исходную точку из любого места, где бы он ни находился, а не прыгать в конечную точку, а затем оживлять назад.

Если вы не можете исправить это самостоятельно, отправьте свой Xaml, и я отправлю исправление.


Следующая проблема:


Проблема с этим новым сценарием будет заключаться в том, что время анимации фиксировано, поэтому обратная анимация будет выглядеть медленнее (например, потребуется примерно то же время, чтобы переместиться с середины назад, как это было бы полностью назад).


Решение этой проблемы - это еще один вопрос (где ответ заключается в динамическом изменении скорости воспроизведения).

ответил(а) 2010-09-10T01:51:00+04:00 10 лет, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема