Compartilhar via


InteractionTracker.TryUpdatePositionWithAnimation Método

Definição

Tenta atualizar a posição do InteractionTracker aplicando uma animação.

O método TryUpdatePositionWithAnimation atualiza a posição de InteractionTracker com base na entrada CompositionAnimation como um parâmetro. Esse método é usado em situações em que o movimento de InteractionTracker precisa ser definido por uma animação específica, em vez da experiência de Inércia tradicional. TryUpdatePositionWithAnimation pode ser chamado do estado Ocioso ou Inércia – fazendo isso, a posição do InteractionTracker será controlada pela animação definida e entrará no estado 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

Parâmetros

animation
CompositionAnimation

A animação a ser aplicada ao InteractionTracker.

Retornos

Int32

int

Retorna a ID da solicitação. Em transições de estado, a solicitação que causou a alteração no estado será incluída nos args. Essas IDs começarão em 1 e aumentarão com cada chamada try durante o tempo de vida do aplicativo.

Exemplos

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);
}

Comentários

Ao criar a animação com a qual você deseja atualizar a posição do InteractionTracker , você não precisa chamar Microsoft.UI.Composition.CompositionObject.StartAnimation. O sistema cuidará disso nos bastidores depois que a animação for passada por meio de TryUpdatePositionWithAnimation.

Ao definir a animação que animará a posição do InteractionTracker , use um Vector3KeyFrameAnimation ou um ExpressionAnimation que seja resolvido para um Vector3.

A tabela a seguir resume o comportamento esperado quando esse método é chamado em um estado específico:

Estado AtualResultado
OciosoA animação solicitada começa na propriedade solicitada, o estado muda para CustomAnimation
InteraçãoSolicitação ignorada
InérciaA animação solicitada começa na propriedade solicitada, o estado muda para CustomAnimation
CustomAnimationA animação atual é interrompida e a nova animação solicitada é iniciada na propriedade solicitada, o estado reentram em CustomAnimation

Aplica-se a