Поделиться через


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.

Возвращаемое значение

Int32

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

Применяется к