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 , не нужно вызывать StartAnimation. Система позаботится об этом в фоновом режиме после того, как анимация будет передана через TryUpdatePositionWithAnimation.
При определении анимации, которая будет анимировать позицию InteractionTracker , обязательно используйте Vector3KeyFrameAnimation или ExpressionAnimation , которая разрешается в Vector3.
В таблице ниже приведена сводка ожидаемого поведения при вызове этого метода в определенном состоянии:
Текущее состояние | Результат |
---|---|
Бездействие | Запрошенная анимация начинается при запрошенном свойстве, состояние изменяется на CustomAnimation |
Взаимодействие | Запрос игнорируется |
Инерция | Запрошенная анимация начинается при запрошенном свойстве, состояние изменяется на CustomAnimation |
CustomAnimation | Текущая анимация останавливается, а новая запрошенная анимация запускается для запрошенного свойства, состояние снова вступает в CustomAnimation |