Condividi tramite


InteractionTracker.TryUpdatePositionWithAnimation Metodo

Definizione

Tenta di aggiornare la posizione di InteractionTracker applicando un'animazione.

Il metodo TryUpdatePositionWithAnimation aggiorna la posizione di InteractionTracker in base all'input CompositionAnimation come parametro. Questo metodo viene usato in situazioni in cui il movimento di InteractionTracker deve essere definito da un'animazione specifica, anziché dall'esperienza tradizionale inertia. TryUpdatePositionWithAnimation può essere chiamato dallo stato Idle o Inertia. In questo modo, la posizione di InteractionTracker verrà guidata dall'animazione definita e immettere lo stato 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

Parametri

animation
CompositionAnimation

Animazione da applicare all'oggetto InteractionTracker.

Restituisce

Int32

int

Restituisce l'ID richiesta. Nelle transizioni di stato, la richiesta che ha causato la modifica dello stato verrà inclusa nell'args. Questi ID iniziano a 1 e aumentano con ogni chiamata di tentativo durante la durata dell'applicazione.

Esempio

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

Commenti

Quando si crea l'animazione con cui si vuole aggiornare la posizione di InteractionTracker , non è necessario chiamare StartAnimation. Il sistema si occupa di questa operazione dietro le quinte dopo che l'animazione viene passata tramite TryUpdatePositionWithAnimation.

Quando si definisce l'animazione che anima la posizione di InteractionTracker , assicurarsi di usare vector3KeyFrameAnimation o expressionAnimation che si risolve in un vector3.

La tabella seguente riepiloga il comportamento previsto quando questo metodo viene chiamato in uno stato specifico:

Stato correnteRisultato
IdleL'animazione richiesta viene avviata sulla proprietà richiesta, le modifiche dello stato a CustomAnimation
InterazioneRichiesta ignorata
InerziaL'animazione richiesta viene avviata sulla proprietà richiesta, le modifiche dello stato a CustomAnimation
CustomAnimationL'animazione corrente si arresta e viene avviata una nuova animazione richiesta sulla proprietà richiesta, lo stato viene nuovamente immesso in CustomAnimation

Si applica a