Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud chcete vytvořit animaci, musí aplikace vytvořit scénář.
Přehled
Obecné kroky pro vytvoření scénáře jsou následující:
- Vytvoření scénáře
- Vytvoření jednoho nebo více přechodů
- Přidejte přechody do scénáře a určete proměnné, které animují.
Pomocí správce animací je možné vytvořit prázdnou storyboard. Aplikace musí naplnit jednotlivé scénáře přechody. Každý přechod určuje, jak se v daném časovém intervalu mění jedna animační proměnná. Přechody je možné vytvořit pomocí komponenty přechodové knihovny, která je součástí programu Windows Animation. Případně může aplikace vytvořit vlastní přechody nebo použít přechodovou knihovnu od třetí strany. Když aplikace přidá přechod do scénáře, určuje, která animační proměnná bude přechod animovat.
Scénář může obsahovat přechody v jedné nebo více animačních proměnných. Složitější scénáře můžou pomocí klíčových snímků synchronizovat začátek nebo konce přechodů nebo určit části scénáře, které by se měly opakovat (pevný počet nebo neomezeně dlouho).
Příklad kódu
Následující příklad kódu je převzat z MainWindow.cpp v ukázce animace Windows Timer-Driven Animace; viz CMainWindow::ChangeColor metoda. Tento příklad vytvoří scénář (krok 1) pomocí IUIAnimationManager::CreateStoryboard metoda, vytvoří přechody (krok 2) pomocí IUIAnimationTransitionLibrary::CreateAccelerateDecelerateTransition metoda a přidá přechody do scénáře (krok 3) pomocí IUIAnimationStoryboard::AddTransition metoda.
const UI_ANIMATION_SECONDS DURATION = 0.5;
const DOUBLE ACCELERATION_RATIO = 0.5;
const DOUBLE DECELERATION_RATIO = 0.5;
// Create a storyboard
IUIAnimationStoryboard *pStoryboard = NULL;
HRESULT hr = m_pAnimationManager->CreateStoryboard(
&pStoryboard
);
if (SUCCEEDED(hr))
{
// Create transitions for the RGB animation variables
IUIAnimationTransition *pTransitionRed;
hr = m_pTransitionLibrary->CreateAccelerateDecelerateTransition(
DURATION,
red,
ACCELERATION_RATIO,
DECELERATION_RATIO,
&pTransitionRed
);
if (SUCCEEDED(hr))
{
IUIAnimationTransition *pTransitionGreen;
hr = m_pTransitionLibrary->CreateAccelerateDecelerateTransition(
DURATION,
green,
ACCELERATION_RATIO,
DECELERATION_RATIO,
&pTransitionGreen
);
if (SUCCEEDED(hr))
{
IUIAnimationTransition *pTransitionBlue;
hr = m_pTransitionLibrary->CreateAccelerateDecelerateTransition(
DURATION,
blue,
ACCELERATION_RATIO,
DECELERATION_RATIO,
&pTransitionBlue
);
if (SUCCEEDED(hr))
{
// Add transitions to the storyboard
hr = pStoryboard->AddTransition(
m_pAnimationVariableRed,
pTransitionRed
);
if (SUCCEEDED(hr))
{
hr = pStoryboard->AddTransition(
m_pAnimationVariableGreen,
pTransitionGreen
);
if (SUCCEEDED(hr))
{
hr = pStoryboard->AddTransition(
m_pAnimationVariableBlue,
pTransitionBlue
);
if (SUCCEEDED(hr))
{
// Get the current time and schedule the storyboard for play
...
}
Předchozí krok
Před zahájením tohoto kroku byste měli mít dokončený tento krok: Čtení hodnot proměnných animace.
Další krok
Po dokončení tohoto kroku je dalším krokem: Naplánování scénáře.
Související témata