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.
Un'applicazione deve creare una variabile di animazione per ogni caratteristica visiva che deve essere animata usando l'animazione di Windows.
Panoramica
Le variabili di animazione vengono create usando la gestione animazioni e l'applicazione deve conservare un riferimento a ognuno per tutto il tempo necessario. L'applicazione in genere creerà ogni variabile di animazione contemporaneamente all'oggetto visivo animato.
Quando viene creata una variabile di animazione, è necessario specificare il relativo valore iniziale. Successivamente, il valore può essere modificato solo pianificando storyboard che lo animano.
Le variabili di animazione vengono passate come parametri quando vengono costruiti gli storyboard, quindi l'applicazione non deve rilasciarle fino a quando le caratteristiche visive che rappresentano non devono più essere animate, in genere quando gli oggetti visivi associati stanno per essere eliminati definitivamente.
Codice di esempio
Animazione dei colori
Il codice di esempio seguente è tratto da MainWindow.cpp negli esempi di animazione di Windows Application-Driven animation e Timer-Driven Animation. Nell'esempio vengono create tre variabili di animazione usando CreateAnimationVariable per rappresentare i colori di sfondo. Il codice usa anche i metodiSetLowerBounde SetUpperBound per controllare il valore della variabile di animazione.
const DOUBLE INITIAL_RED = COLOR_MAX;
const DOUBLE INITIAL_GREEN = COLOR_MAX;
const DOUBLE INITIAL_BLUE = COLOR_MAX;
HRESULT hr = m_pAnimationManager->CreateAnimationVariable(
INITIAL_RED,
&m_pAnimationVariableRed
);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableRed->SetLowerBound(COLOR_MIN);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableRed->SetUpperBound(COLOR_MAX);
if (SUCCEEDED(hr))
{
hr = m_pAnimationManager->CreateAnimationVariable(
INITIAL_GREEN,
&m_pAnimationVariableGreen
);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableGreen->SetLowerBound(COLOR_MIN);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableGreen->SetUpperBound(COLOR_MAX);
if (SUCCEEDED(hr))
{
hr = m_pAnimationManager->CreateAnimationVariable(
INITIAL_BLUE,
&m_pAnimationVariableBlue
);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableBlue->SetLowerBound(COLOR_MIN);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableBlue->SetUpperBound(COLOR_MAX);
}
}
}
}
}
}
}
}
Prendere nota delle definizioni seguenti da MainWindow.h.
class CMainWindow
{
...
private:
// Animated Variables
IUIAnimationVariable *m_pAnimationVariableRed;
IUIAnimationVariable *m_pAnimationVariableGreen;
IUIAnimationVariable *m_pAnimationVariableBlue;
...
};
Animazione di coordinate x e y
Il codice di esempio seguente è tratto da Thumbnail.cpp nell'esempio di layout a griglia di animazione di Windows ; vedere il metodo CMainWindow::CreateAnimationVariables. Vengono create due variabili di animazione per rappresentare le coordinate X e Y di ogni oggetto.
// Create the animation variables for the x and y coordinates
hr = m_pAnimationManager->CreateAnimationVariable(
xInitial,
&m_pAnimationVariableX
);
if (SUCCEEDED(hr))
{
hr = m_pAnimationManager->CreateAnimationVariable(
yInitial,
&m_pAnimationVariableY
);
...
}
Si notino le definizioni seguenti di Thumbnail.h.
class CThumbnail
{
public:
...
// X and Y Animation Variables
IUIAnimationVariable *m_pAnimationVariableX;
IUIAnimationVariable *m_pAnimationVariableY;
...
};
Le variabili di animazione sono numeri a virgola mobile, ma i relativi valori possono essere recuperati anche come numeri interi. Per impostazione predefinita, ogni valore verrà arrotondato all'intero più vicino, ma è possibile eseguire l'override della modalità di arrotondamento usata per una variabile. Il codice di esempio seguente usa il metodo SetRoundingMode per specificare che i valori devono essere sempre arrotondati verso il basso.
hr = m_pAnimationVariableX->SetRoundingMode(
UI_ANIMATION_ROUNDING_MODE_FLOOR
);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableY->SetRoundingMode(
UI_ANIMATION_ROUNDING_MODE_FLOOR
);
...
}
Passaggio precedente
Prima di iniziare questo passaggio, è necessario aver completato questo passaggio: Creare gli oggetti di animazione principali.
Passaggio successivo
Dopo aver completato questo passaggio, il passaggio successivo è: Aggiornare il Gestore delle Animazioni e Disegnare i Fotogrammi.
Argomenti correlati