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


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 , не нужно вызывать StartAnimation. Система позаботится об этом в фоновом режиме после того, как анимация будет передана через TryUpdatePositionWithAnimation.

При определении анимации, которая будет анимировать позицию InteractionTracker , обязательно используйте Vector3KeyFrameAnimation или ExpressionAnimation , которая разрешается в Vector3.

В таблице ниже приведена сводка ожидаемого поведения при вызове этого метода в определенном состоянии:

Текущее состояниеРезультат
БездействиеЗапрошенная анимация начинается при запрошенном свойстве, состояние изменяется на CustomAnimation
ВзаимодействиеЗапрос игнорируется
ИнерцияЗапрошенная анимация начинается при запрошенном свойстве, состояние изменяется на CustomAnimation
CustomAnimationТекущая анимация останавливается, а новая запрошенная анимация запускается для запрошенного свойства, состояние снова вступает в CustomAnimation

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