Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Za każdym razem, gdy aplikacja maluje, powinna odczytywać bieżące wartości zmiennych animacji, które reprezentują cechy wizualne, które mają być animowane.
Przegląd
Podczas rysowania ramki aplikacja może użyć metody IUIAnimationVariable::GetValue lub IUIAnimationVariable::GetIntegerValue metody, aby zażądać wartości dowolnych zmiennych animacji, które będą wpływać na wizualizacje w ramce. Istnieje możliwość przycięcia zmiennej animacji do zakresu wartości (SetLowerBound i SetUpperBound) i zażądać zaokrąglenia jej wartości do liczby całkowitej przy użyciu określonego schematu zaokrąglania (SetRoundingMode).
Zamiast odczytywać wartości wszystkich zmiennych dla każdej ramki, aplikacja może użyć IUIAnimationVariable::SetVariableChangeHandler lub IUIAnimationVariable::SetVariableIntegerChangeHandler metody do zarejestrowania co najmniej jeden program obsługi zmiany zmiennej w celu odbierania powiadomień tylko wtedy, gdy istnieje zmiana wartości zmiennych (IUIAnimationVariableChangeHandler::OnValueChanged) lub wartość zaokrąglona (IUIAnimationVariableIntegerChangeHandler::OnIntegerValueChanged). Aby zidentyfikować zmienne przekazywane do programów obsługi zmian zmiennych, aplikacja może zastosować tagi do zmiennych przy użyciu metody IUIAnimationVariable::SetTag. Są to pary obiektów (IUnknown*) i liczb całkowitych, które są interpretowane przez aplikację.
Przykładowy kod
Poniższy przykładowy kod jest pobierany z Thumbnail.cpp w przykładzie Animacja systemu Windows Układ siatki; zobacz metodę CMainWindow::Render. Używa metody GetValue do odczytywania wartości jako wartości zmiennoprzecinkowych.
// 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
...
}
}
Poniższy przykładowy kod pochodzi z MainWindow.cpp w przykładzie Windows Animation Timer-Driven Animacja; zobacz metodę CMainWindow::DrawBackground. Używa metody GetIntegerValue do odczytywania wartości jako wartości całkowitych.
// 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
...
}
}
...
}
Poprzedni krok
Przed rozpoczęciem tego kroku należy wykonać następujący krok: zaktualizować Menedżera Animacji i narysować klatki.
Następny krok
Po wykonaniu tego kroku następnym krokiem jest: Tworzenie scenorysu i dodawanie przejść.
Tematy pokrewne