Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Ogni volta che l'applicazione disegna, deve leggere i valori correnti delle variabili di animazione che rappresentano le caratteristiche visive da animare.
Panoramica
Quando si disegna una cornice, un'applicazione può usare il metodo IUIAnimationVariable::GetValue o IUIAnimationVariable::GetIntegerValue per richiedere i valori di qualsiasi variabile di animazione che influirà sugli oggetti visivi all'interno del fotogramma. È possibile ritagliare una variabile di animazione in un intervallo di valori (SetLowerBound e SetUpperBound) e richiedere che il valore venga arrotondato a un intero usando uno schema di arrotondamento specificato (SetRoundingMode).
Invece di leggere i valori di tutte le variabili per ogni frame, Un'applicazione può usare il IUIAnimationVariable::SetVariableChangeHandler ometodo IUIAnimationVariable::SetVariableIntegerChangeHandler su registrare uno o più gestori di modifiche delle variabili per ricevere notifiche solo quando è presente una modifica al valore delle variabili (IUIAnimationVariableChangeHandler::OnValueChanged) o il valore arrotondato (IUIAnimationVariableIntegerChangeHandler::OnIntegerValueChanged). Per identificare le variabili passate ai gestori delle modifiche delle variabili, un'applicazione può applicare tag alle variabili usando il metodo IUIAnimationVariable::SetTag. Si tratta di oggetti (IUnknown*), coppie integer interpretate dall'applicazione.
Codice di esempio
Il codice di esempio seguente è tratto da Thumbnail.cpp nell'esempio Windows Animation layout a griglia, vedere il metodo CMainWindow::Render. Usa il metodoGetValueper leggere i valori come valori a virgola mobile.
// 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
...
}
}
Il codice di esempio seguente è tratto da MainWindow.cpp nell'esempio di animazione di Windows Timer-Driven Animation; vedere il metodo CMainWindow::DrawBackground. Usa il metodoGetIntegerValueper leggere i valori come valori interi.
// 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
...
}
}
...
}
Passaggio precedente
Prima di iniziare questo passaggio, è necessario aver completato questo passaggio: Aggiornare Gestione animazioni e Disegnare fotogrammi.
Passaggio successivo
Al termine di questo passaggio, il passaggio successivo è: Creare uno storyboard e Aggiungere transizioni.
Argomenti correlati
-
Panoramica animazione di Windows