Share via


Lire les valeurs des variables d’animation

Chaque fois que votre application peint, elle doit lire les valeurs actuelles des variables d’animation qui représentent les caractéristiques visuelles à animer.

Vue d’ensemble

Lors du dessin d’un cadre, une application peut utiliser la méthode IUIAnimationVariable::GetValue ou IUIAnimationVariable::GetIntegerValue pour demander les valeurs de toutes les variables d’animation qui affecteront les visuels dans le cadre. Il est possible d’découper une variable d’animation dans une plage de valeurs (SetLowerBound et SetUpperBound), et de demander que sa valeur soit arrondie à un entier à l’aide d’un schéma d’arrondi spécifié (SetRoundingMode).

Au lieu de lire les valeurs de toutes les variables pour chaque image, une application peut utiliser la méthode IUIAnimationVariable::SetVariableChangeHandler ou IUIAnimationVariable::SetVariableIntegerChangeHandler pour inscrire un ou plusieurs gestionnaires de modifications de variables pour recevoir des notifications uniquement en cas de modification de la valeur des variables (IUIAnimationVariableChangeHandler::OnValueChanged) ou de la valeur arrondie (IUIAnimationVariableIntegerChangeHandler::OnIntegerValueChanged) ). Pour identifier les variables passées aux gestionnaires de modifications de variables, une application peut appliquer des balises à des variables à l’aide de la méthode IUIAnimationVariable::SetTag . Il s’agit d’objets (IUnknown*), des paires entières interprétées par l’application.

Exemple de code

L’exemple de code suivant est extrait de Thumbnail.cpp dans l’exemple de disposition de grille d’animation Windows ; consultez la méthode CMainWindow::Render. Il utilise la méthode GetValue pour lire les valeurs en tant que valeurs à virgule flottante.

// Get the x-coordinate and y-coordinate animation variable values

DOUBLE x=0;
hr = m_pAnimationVariableX->GetValue(&x);
if (SUCCEEDED(hr))
{
    DOUBLE y=0;
    hr = m_pAnimationVariableY->GetValue(&y);
    if (SUCCEEDED(hr))
    {
        // Draw the object

        ...

    }
}

L’exemple de code suivant est tiré de MainWindow.cpp dans l’exemple d’animation Windows pilotée par le minuteur ; consultez la méthode CMainWindow::D rawBackground. Il utilise la méthode GetIntegerValue pour lire les valeurs en tant que valeurs entières.

// Get the RGB animation variable values

INT32 red;
HRESULT hr = m_pAnimationVariableRed->GetIntegerValue(
    &red
    );
if (SUCCEEDED(hr))
{
    INT32 green;
    hr = m_pAnimationVariableGreen->GetIntegerValue(
        &green
        );
    if (SUCCEEDED(hr))
    {
        INT32 blue;
        hr = m_pAnimationVariableBlue->GetIntegerValue(
            &blue
            );
        if (SUCCEEDED(hr))
        {
            // Set the RGB of the background brush to the new animated value

            ...
                
            // Paint the background

            ...

        }
    }

    ...

}

Étape précédente

Avant de commencer cette étape, vous devez avoir effectué cette étape : Mettre à jour le Gestionnaire d’animation et dessiner les images.

étape suivante

Une fois cette étape terminée, l’étape suivante est : Créer un storyboard et ajouter des transitions.

IUIAnimationVariable::GetIntegerValue

IUIAnimationVariable::GetValue

Vue d’ensemble de l’animation Windows