Freigeben über


InteractionTracker.TryUpdatePositionWithAnimation Methode

Definition

Versucht, die Position des InteractionTrackers zu aktualisieren, indem eine Animation angewendet wird.

Die TryUpdatePositionWithAnimation-Methode aktualisiert die Position von InteractionTracker basierend auf der CompositionAnimation-Eingabe als Parameter. Diese Methode wird in Situationen verwendet, in denen die Bewegung von InteractionTracker durch eine bestimmte Animation definiert werden muss, anstatt durch die herkömmliche Inertia-Erfahrung. TryUpdatePositionWithAnimation kann aus dem Leerlauf- oder Trägheitszustand aufgerufen werden. Dadurch wird die Position von InteractionTracker von der definierten Animation gesteuert und wechselt in den CustomAnimation-Zustand.

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

Parameter

animation
CompositionAnimation

Die Animation, die auf den InteractionTracker angewendet werden soll.

Gibt zurück

Int32

int

Gibt die Anforderungs-ID zurück. Bei Zustandsübergängen wird die Anforderung, die die Zustandsänderung verursacht hat, in die Argumente eingeschlossen. Diese IDs beginnen bei 1 und erhöhen sich mit jedem Try-Aufruf während der Lebensdauer der Anwendung.

Beispiele

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

Hinweise

Wenn Sie die Animation erstellen, mit der Sie die Position von InteractionTracker aktualisieren möchten, müssen Sie StartAnimation nicht aufrufen. Das System übernimmt dies im Hintergrund, sobald die Animation über TryUpdatePositionWithAnimation übergeben wird.

Wenn Sie die Animation definieren, die die Position von InteractionTracker animiert, müssen Sie entweder eine Vector3KeyFrameAnimation oder eine ExpressionAnimation verwenden, die in einen Vector3 aufgelöst wird.

Die folgende Tabelle fasst das erwartete Verhalten zusammen, wenn diese Methode in einem bestimmten Zustand aufgerufen wird:

Aktueller ZustandErgebnis
IdleAngeforderte Animation beginnt mit der angeforderten Eigenschaft, Zustandsänderungen in CustomAnimation
InteraktionAnforderung ignoriert
TrägheitAngeforderte Animation beginnt mit der angeforderten Eigenschaft, Zustandsänderungen in CustomAnimation
CustomAnimationDie aktuelle Animation wird beendet, und die neue angeforderte Animation wird bei der angeforderten Eigenschaft gestartet, der Zustand wechselt erneut in CustomAnimation.

Gilt für: