InteractionTracker.TryUpdatePositionWithAnimation Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Пытается обновить позицию InteractionTracker путем применения анимации.
Метод TryUpdatePositionWithAnimation обновляет позицию InteractionTracker на основе входных данных CompositionAnimation в качестве параметра. Этот метод используется в ситуациях, когда движение InteractionTracker должно определяться определенной анимацией, а не традиционным интерфейсом инерции. TryUpdatePositionWithAnimation можно вызвать из состояния "Бездействие" или "Инерция". Таким образом, позиция InteractionTracker будет управляться определенной анимацией и перейдет в состояние CustomAnimation.
public:
virtual int TryUpdatePositionWithAnimation(CompositionAnimation ^ animation) = TryUpdatePositionWithAnimation;
int TryUpdatePositionWithAnimation(CompositionAnimation const& animation);
public int TryUpdatePositionWithAnimation(CompositionAnimation animation);
function tryUpdatePositionWithAnimation(animation)
Public Function TryUpdatePositionWithAnimation (animation As CompositionAnimation) As Integer
Параметры
- animation
- CompositionAnimation
Анимация, применяемая к InteractionTracker.
Возвращаемое значение
int
Возвращает идентификатор запроса. При переходе состояния запрос, вызваввший изменение состояния, будет включен в аргументы. Эти идентификаторы начинаются с 1 и увеличиваются с каждым вызовом try в течение времени существования приложения.
Примеры
void CustomAnimationForIT(Vector3 newPosition)
{
// Create a cubic bezier easing function that will be used in the KeyFrames
CompositionEasingFunction cubicBezier = _compositor.CreateCubicBezierEasingFunction(new Vector2(.17f, .67f), new Vector2(1f, 1f);
// Create the Vector3 KFA
Vector3KeyFrameAnimation kfa = _compositor.CreateVector3KeyFrameAnimation();
kfa.Duration = TimeSpan.FromSeconds(3);
// Create the KeyFrames
kfa.InsertKeyFrame(1.0f, newPosition, cubicBezier);
// Update InteractionTracker position using this animation
_tracker.TryUpdatePositionWithAnimation(kfa);
}
Комментарии
При создании анимации, с помощью которой требуется обновить позицию InteractionTracker , не нужно вызывать Microsoft.UI.Composition.CompositionObject.StartAnimation. Система позаботится об этом в фоновом режиме после того, как анимация будет передана через TryUpdatePositionWithAnimation.
При определении анимации, которая будет анимировать позицию InteractionTracker , обязательно используйте Vector3KeyFrameAnimation или ExpressionAnimation , которая разрешается в Vector3.
В таблице ниже приведена сводка ожидаемого поведения при вызове этого метода в определенном состоянии:
Текущее состояние | Результат |
---|---|
Бездействие | Запрошенная анимация начинается с запрошенного свойства, состояние изменяется на CustomAnimation |
Взаимодействие | Запрос игнорируется |
Инерция | Запрошенная анимация начинается с запрошенного свойства, состояние изменяется на CustomAnimation |
CustomAnimation | Текущая анимация останавливается, а новая запрошенная анимация запускается при запрошенном свойстве, состояние снова вводит CustomAnimation |