CAnimationGroup – třída
Implementuje skupinu animací, která kombinuje scénáře animací, objekty animací a přechody k definování animace.
Syntaxe
class CAnimationGroup;
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CAnimationGroup::CAnimationGroup | Vytvoří skupinu animací. |
CAnimationGroup::~CAnimationGroup | Destruktor. Volá se při zničení skupiny animací. |
Veřejné metody
Název | Popis |
---|---|
CAnimationGroup::Animate | Animuje skupinu. |
CAnimationGroup::ApplyTransitions | Použije přechody na objekty animace. |
CAnimationGroup::FindAnimationObject | Vyhledá animační objekt, který obsahuje zadanou animační proměnnou. |
CAnimationGroup::GetGroupID | Vrátí ID skupiny. |
CAnimationGroup::RemoveKeyframes | Odebere a volitelně zničí všechny klíčové rámce, které patří do skupiny animací. |
CAnimationGroup::RemoveTransitions | Odebere přechody z animačních objektů, které patří do skupiny animací. |
CAnimationGroup::Schedule | Naplánuje animaci v zadaném čase. |
CAnimationGroup::SetAutodestroyTransitions | Směruje všechny objekty animace, které patří do skupiny, automaticky zničí přechody. |
Chráněné metody
Název | Popis |
---|---|
CAnimationGroup::AddKeyframes | Pomocná rutina, která do scénáře přidá klíčové rámce. |
CAnimationGroup::AddTransitions | Pomocná rutina, která přidá přechody do scénáře |
CAnimationGroup::CreateTransitions | Pomocná rutina, která vytvoří přechodové objekty modelu COM. |
Veřejné datové členy
Název | Popis |
---|---|
CAnimationGroup::m_bAutoclearTransitions | Určuje, jak vymazat přechody z animačních objektů, které patří do skupiny. Pokud má tento člen hodnotu TRUE, přechody se automaticky odeberou, když je naplánovaná animace. Jinak je potřeba přechody odebrat ručně. |
CAnimationGroup::m_bAutodestroyAnimationObjects | Určuje, jak zničit animační objekty. Pokud je tento parametr TRUE, objekty animace budou při zničení skupiny automaticky zničeny. Jinak musí být objekty animace zničeny ručně. Výchozí hodnota je FALSE. Tuto hodnotu nastavte na hodnotu TRUE pouze v případě, že všechny objekty animace, které patří do skupiny, jsou dynamicky přiděleny operátorem novým operátorem. |
CAnimationGroup::m_bAutodestroyKeyframes | Určuje, jak zničit klíčové rámce. Pokud je tato hodnota PRAVDA, všechny klíčové rámce jsou odebrány a zničeny; jinak se odeberou jenom ze seznamu. Výchozí hodnota je PRAVDA. |
CAnimationGroup::m_lstAnimationObjects | Obsahuje seznam animačních objektů. |
CAnimationGroup::m_lstKeyFrames | Obsahuje seznam klíčových rámců. |
CAnimationGroup::m_pStoryboard | Odkazuje na animační scénář. Tento ukazatel je platný až po volání aplikace Animate. |
Chráněné datové členy
Název | Popis |
---|---|
CAnimationGroup::m_nGroupID | Jedinečný identifikátor skupiny animací. |
CAnimationGroup::m_pParentController | Ukazatel na kontroler animace, do které tato skupina patří. |
Poznámky
Skupiny animací se vytvářejí automaticky kontrolerem animace (CAnimationController) při přidávání animačních objektů pomocí CAnimationController::AddAnimationObject. Skupinu animací identifikuje GroupID, která se obvykle používá jako parametr pro manipulaci se skupinami animací. ID skupiny se přebírá z prvního objektu animace, který se přidá do nové skupiny animací. Zapouzdřená animační storyboard se vytvoří po volání CAnimationController::AnimateGroup a lze k němu přistupovat prostřednictvím veřejného člena m_pStoryboard.
Hierarchie dědičnosti
CAnimationGroup
Požadavky
Hlavička: afxanimationcontroller.h
CAnimationGroup::~CAnimationGroup
Destruktor. Volá se při zničení skupiny animací.
~CAnimationGroup();
CAnimationGroup::AddKeyframes
Pomocná rutina, která do scénáře přidá klíčové rámce.
void AddKeyframes(IUIAnimationStoryboard* pStoryboard, BOOL bAddDeep);
Parametry
pStoryboard
Ukazatel na objekt MODELU COM scénáře.
bAddDeep
Určuje, zda má tato metoda přidat do klíčových rámců scénáře, které závisí na jiných klíčových rámcích.
CAnimationGroup::AddTransitions
Pomocná rutina, která přidá přechody do scénáře
void AddTransitions(
IUIAnimationStoryboard* pStoryboard,
BOOL bDependOnKeyframes);
Parametry
pStoryboard
Ukazatel na objekt MODELU COM scénáře.
bDependOnKeyframes
CAnimationGroup::Animate
Animuje skupinu.
BOOL Animate(
IUIAnimationManager* pManager,
IUIAnimationTimer* pTimer,
BOOL bScheduleNow);
Parametry
pManager
pTimerbScheduleNow
Návratová hodnota
TRUE, pokud metoda uspěje; jinak NEPRAVDA.
Poznámky
Tato metoda vytvoří interní scénář, vytvoří a použije přechody a naplánuje animaci, pokud bScheduleNow je TRUE. Pokud bScheduleNow je NEPRAVDA, musíte zavolat Plán, který spustí animaci v zadaném čase.
CAnimationGroup::ApplyTransitions
Použije přechody na objekty animace.
void ApplyTransitions();
Poznámky
Tato metoda ASSERTS v režimu ladění, pokud scénář nebyl vytvořen. Nejprve vytvoří všechny přechody, pak přidá "statické" klíčové rámce (klíčové rámce, které závisí na posunech), přidá přechody, které nezávisí na klíčových rámcích, přidá klíčové rámce v závislosti na přechodech a dalších klíčových rámcích a nakonec přidá přechody, které závisí na klíčových rámcích.
CAnimationGroup::CAnimationGroup
Vytvoří skupinu animací.
CAnimationGroup(CAnimationController* pParentController, UINT32 nGroupID);
Parametry
pParentController
Ukazatel na animační kontroler, který vytvoří skupinu.
nGroupID
Určuje ID skupiny.
CAnimationGroup::CreateTransitions
Pomocná rutina, která vytvoří přechodové objekty modelu COM.
BOOL CreateTransitions();
Návratová hodnota
PRAVDA je metoda úspěšná, jinak NEPRAVDA.
CAnimationGroup::FindAnimationObject
Vyhledá animační objekt, který obsahuje zadanou animační proměnnou.
CAnimationBaseObject* FindAnimationObject(IUIAnimationVariable* pVariable);
Parametry
pVariable
Ukazatel na animační proměnnou.
Návratová hodnota
Ukazatel na animační objekt nebo NULL, pokud nebyl nalezen animační objekt.
CAnimationGroup::GetGroupID
Vrátí ID skupiny.
UINT32 GetGroupID() const;
Návratová hodnota
Identifikátor skupiny.
CAnimationGroup::m_bAutoclearTransitions
Určuje, jak vymazat přechody z animačních objektů, které patří do skupiny. Pokud má tento člen hodnotu TRUE, přechody se automaticky odeberou, když je naplánovaná animace. Jinak je potřeba přechody odebrat ručně.
BOOL m_bAutoclearTransitions;
CAnimationGroup::m_bAutodestroyAnimationObjects
Určuje, jak zničit animační objekty. Pokud je tento parametr TRUE, objekty animace budou při zničení skupiny automaticky zničeny. Jinak musí být objekty animace zničeny ručně. Výchozí hodnota je FALSE. Tuto hodnotu nastavte na hodnotu TRUE pouze v případě, že všechny objekty animace, které patří do skupiny, jsou dynamicky přiděleny operátorem novým operátorem.
BOOL m_bAutodestroyAnimationObjects;
CAnimationGroup::m_bAutodestroyKeyframes
Určuje, jak zničit klíčové rámce. Pokud je tato hodnota PRAVDA, všechny klíčové rámce jsou odebrány a zničeny; jinak se odeberou jenom ze seznamu. Výchozí hodnota je PRAVDA.
BOOL m_bAutodestroyKeyframes;
CAnimationGroup::m_lstAnimationObjects
Obsahuje seznam animačních objektů.
CObList m_lstAnimationObjects;
CAnimationGroup::m_lstKeyFrames
Obsahuje seznam klíčových rámců.
CObList m_lstKeyFrames;
CAnimationGroup::m_nGroupID
Jedinečný identifikátor skupiny animací.
UINT32 m_nGroupID;
CAnimationGroup::m_pParentController
Ukazatel na kontroler animace, do které tato skupina patří.
CAnimationController* m_pParentController;
CAnimationGroup::m_pStoryboard
Odkazuje na animační scénář. Tento ukazatel je platný až po volání aplikace Animate.
ATL::CComPtr<IUIAnimationStoryboard> m_pStoryboard;
CAnimationGroup::RemoveKeyframes
Odebere a volitelně zničí všechny klíčové rámce, které patří do skupiny animací.
void RemoveKeyframes();
Poznámky
Pokud je m_bAutodestroyKeyframes člen TRUE, klíčové rámce se odeberou a zničí, jinak se klíčové rámce odeberou jenom z interního seznamu klíčových rámců.
CAnimationGroup::RemoveTransitions
Odebere přechody z animačních objektů, které patří do skupiny animací.
void RemoveTransitions();
Poznámky
Pokud je příznak m_bAutoclearTransitions nastaven na HODNOTU TRUE, tato metoda smyčka nad všemi animačními objekty, které patří do skupiny, a volá CAnimationObject::ClearTransitions(FALSE).
CAnimationGroup::Schedule
Naplánuje animaci v zadaném čase.
BOOL Schedule(IUIAnimationTimer* pTimer, UI_ANIMATION_SECONDS time);
Parametry
pTimer
Ukazatel na časovač animace.
Čas
Určuje čas naplánování animace.
Návratová hodnota
TRUE, pokud metoda uspěje; NEPRAVDA, pokud metoda selže nebo pokud aplikace Animate nebyla volána pomocí bScheduleNow nastavena na FALSE.
Poznámky
Voláním této funkce naplánujete animaci v určený čas. Nejdřív musíte volat Animate s bScheduleNow nastaveným na FALSE.
CAnimationGroup::SetAutodestroyTransitions
Směruje všechny objekty animace, které patří do skupiny, automaticky zničí přechody.
void SetAutodestroyTransitions(BOOL bAutoDestroy = TRUE);
Parametry
bAutoDestroy
Určuje, jak zničit přechody.
Poznámky
Tuto hodnotu nastavte na FALSE pouze v případě, že přidělíte přechody v zásobníku. Výchozí hodnota je TRUE, proto důrazně doporučujeme přidělit přechodové objekty pomocí operátoru new.