Condividi tramite


InteractionTracker.TryUpdateScaleWithAnimation Metodo

Definizione

Tenta di aggiornare la scala con l'animazione specificata.

Il metodo TryUpdateScaleWithAnimation aggiorna la posizione di scala di InteractionTracker in base all'input CompositionAnimation immesso come parametro. Questo metodo viene usato nelle situazioni in cui il movimento di InteractionTracker deve essere definito da un'animazione specifica, invece dell'esperienza tradizionale di inerzia. TryUpdateScaleWithAnimation 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 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

Parametri

animation
CompositionAnimation

Animazione da applicare alla scala.

centerPoint
Vector3 Vector3

float3

Nuovo punto centrale.

Restituisce

Int32

int

Restituisce l'ID richiesta. Nelle transizioni di stato, la richiesta che ha causato la modifica dello stato verrà inclusa negli argomenti. Questi ID inizieranno da 1 e aumentano con ogni chiamata try durante la durata dell'applicazione.

Esempio

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

Commenti

Quando crei l'animazione con cui vuoi aggiornare la posizione di InteractionTracker , non devi chiamare StartAnimation. Il sistema si occuperà di questo dietro le quinte dopo che l'animazione viene passata tramite TryUpdateScaleWithAnimation.

Quando si definisce l'animazione che anima la posizione di scala di InteractionTracker , assicurarsi di usare scalarKeyFrameAnimation o ExpressionAnimation che si risolve in scalare.

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

Stato correnteRisultato
IdleL'animazione richiesta inizia sulla proprietà richiesta, le modifiche dello stato a CustomAnimation
InterazioneRichiesta ignorata
InerziaL'animazione richiesta inizia 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 entra di nuovo in CustomAnimation

Si applica a