Compartir a través de


InteractionTracker.TryUpdateScaleWithAnimation Método

Definición

Intenta actualizar la escala con la animación especificada.

El método TryUpdateScaleWithAnimation actualiza la posición de escala de InteractionTracker basada en la entrada CompositionAnimation como parámetro. Este método se usa en situaciones en las que el movimiento de InteractionTracker debe definirse mediante una animación específica, en lugar de la experiencia de inercia tradicional. Se puede llamar a TryUpdateScaleWithAnimation desde el estado Inactivo o Inercia; al hacerlo, la posición de InteractionTracker se controlará mediante la animación definida y entrará en el estado CustomAnimation.

public:
 virtual int TryUpdateScaleWithAnimation(CompositionAnimation ^ animation, float3 centerPoint) = TryUpdateScaleWithAnimation;
int TryUpdateScaleWithAnimation(CompositionAnimation const& animation, float3 const& centerPoint);
public int TryUpdateScaleWithAnimation(CompositionAnimation animation, Vector3 centerPoint);
function tryUpdateScaleWithAnimation(animation, centerPoint)
Public Function TryUpdateScaleWithAnimation (animation As CompositionAnimation, centerPoint As Vector3) As Integer

Parámetros

animation
CompositionAnimation

Animación que se va a aplicar a la escala.

centerPoint
Vector3 Vector3

float3

Nuevo punto central.

Devoluciones

Int32

int

Devuelve el identificador de solicitud. En las transiciones de estado, la solicitud que provocó el cambio en estado se incluirá en los argumentos. Estos identificadores comenzarán en 1 y aumentarán con cada llamada try durante la vigencia de la aplicación.

Ejemplos

void CustomAnimationForIT(float newScale, Vector3 newCenterPoint)
{
  // 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
  ScalarKeyFrameAnimation kfa = _compositor.CreateScalarKeyFrameAnimation();
  kfa.Duration = TimeSpan.FromSeconds(3);

  // Create the KeyFrames
  kfa.InsertKeyFrame(1.0f, newScale, cubicBezier);

  // Update InteractionTracker position using this animation
  _tracker.TryUpdatePositionWithAnimation(kfa, newCenterPoint);
}

Comentarios

Al crear la animación con la que desea actualizar la posición de InteractionTracker , no es necesario llamar a StartAnimation. El sistema se encargará de esto en segundo plano una vez que la animación se pasa a través de TryUpdateScaleWithAnimation.

Al definir la animación que animará la posición de escala de InteractionTracker , asegúrese de usar scalarKeyFrameAnimation o expressionAnimation que se resuelva en un scalar.

En la tabla siguiente se resume el comportamiento esperado cuando se llama a este método en un estado determinado:

Estado actualResultado
InactivoLa animación solicitada se inicia en la propiedad solicitada, los cambios de estado en CustomAnimation
InteracciónSolicitud omitida
InerciaLa animación solicitada se inicia en la propiedad solicitada, los cambios de estado en CustomAnimation
CustomAnimationLa animación actual se detiene y se inicia la nueva animación solicitada en la propiedad solicitada, el estado vuelve a escribir CustomAnimation.

Se aplica a