CAnimationController – třída
Implementuje animační kontroler, který poskytuje centrální rozhraní pro vytváření a správu animací.
Syntaxe
class CAnimationController : public CObject;
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CAnimationController::CAnimationController | Vytvoří animační kontroler. |
CAnimationController::~CAnimationController | Destruktor. Volá se při zničení objektu kontroleru animace. |
Veřejné metody
Název | Popis |
---|---|
CAnimationController::AddAnimationObject | Přidá animační objekt do skupiny, která patří do kontroleru animace. |
CAnimationController::AddKeyframeToGroup | Přidá do skupiny klíčový snímek. |
CAnimationController::AnimateGroup | Připraví skupinu pro spuštění animace a volitelně ji naplánuje. |
CAnimationController::CleanUpGroup | Přetíženo. Volá se rozhraním, aby se skupina vyčistila, když byla naplánována animace. |
CAnimationController::CreateKeyframe | Přetíženo. Vytvoří klíčový snímek, který závisí na přechodu a přidá ho do zadané skupiny. |
CAnimationController::EnableAnimationManagerEvent | Nastaví nebo uvolní obslužnou rutinu pro volání, když se změní stav správce animací. |
CAnimationController::EnableAnimationTimerEventHandler | Nastaví nebo uvolní obslužnou rutinu pro události časování a obslužnou rutinu pro aktualizace časování. |
CAnimationController::EnablePriorityComparisonHandler | Nastaví nebo uvolní obslužnou rutinu porovnání priority, která určí, jestli je možné naplánovanou scénář zrušit, uzavřít, oříznout nebo zkomprimovat. |
CAnimationController::EnableStoryboardEventHandler | Nastaví nebo uvolní obslužnou rutinu pro stav scénáře a události aktualizace. |
CAnimationController::FindAnimationGroup | Přetíženo. Najde skupinu animací podle scénáře. |
CAnimationController::FindAnimationObject | Vyhledá animační objekt obsahující zadanou animační proměnnou. |
CAnimationController::GetKeyframeStoryboardStart | Vrátí klíčový snímek, který identifikuje začátek scénáře. |
CAnimationController::GetUIAnimationManager | Poskytuje přístup k zapouzdřenému objektu IUIAnimationManager. |
CAnimationController::GetUIAnimationTimer | Poskytuje přístup k zapouzdřenému objektu IUIAnimationTimer. |
CAnimationController::GetUITransitionFactory | Ukazatel na rozhraní IUIAnimationTransitionFactory nebo NULL, pokud vytvoření přechodné knihovny selhalo. |
CAnimationController::GetUITransitionLibrary | Poskytuje přístup k zapouzdřené IUIAnimationTransitionLibrary objektu. |
CAnimationController::IsAnimationInProgress | Určuje, jestli alespoň jedna skupina přehrává animaci. |
CAnimationController::IsValid | Určuje, jestli je řadič animace platný. |
CAnimationController::OnAnimationIntegerValueChanged | Volá se architekturou, když se změnila celočíselná hodnota proměnné animace. |
CAnimationController::OnAnimationManagerStatusChanged | Volané architekturou v reakci na událost StatusChanged ze správce animací. |
CAnimationController::OnAnimationTimerPostUpdate | Volá se rozhraním po dokončení aktualizace animace. |
CAnimationController::OnAnimationTimerPreUpdate | Volá se rozhraním před zahájením aktualizace animace. |
CAnimationController::OnAnimationTimerRenderingTooSlow | Volá se rozhraním, když frekvence snímků vykreslování animace klesne pod minimální žádoucí frekvence snímků. |
CAnimationController::OnAnimationValueChanged | Volá se architekturou, když se změnila hodnota proměnné animace. |
CAnimationController::OnBeforeAnimationStart | Volal ho architektura těsně před naplánováním animace. |
CAnimationController::OnHasPriorityCancel | Volal ho architektura pro řešení konfliktů plánování. |
CAnimationController::OnHasPriorityCompress | Volal ho architektura pro řešení konfliktů plánování. |
CAnimationController::OnHasPriorityConclude | Volal ho architektura pro řešení konfliktů plánování. |
CAnimationController::OnHasPriorityTrim | Volal ho architektura pro řešení konfliktů plánování. |
CAnimationController::OnStoryboardStatusChanged | Volá se podle architektury, když se změnil stav scénáře. |
CAnimationController::OnStoryboardUpdated | Volá se rozhraním při aktualizaci scénáře. |
CAnimationController::RemoveAllAnimationGroups | Odebere všechny skupiny animací z kontroleru animací. |
CAnimationController::RemoveAnimationGroup | Odebere skupinu animací se zadaným ID kontroleru animace. |
CAnimationController::RemoveAnimationObject | Odeberte animační objekt z animačního kontroleru. |
CAnimationController::RemoveTransitions | Odebere přechody z animačních objektů, které patří do zadané skupiny. |
CAnimationController::ScheduleGroup | Naplánuje animaci. |
CAnimationController::SetRelatedWnd | Vytvoří relaci mezi animačním kontrolerem a oknem. |
CAnimationController::UpdateAnimationManager | Nasměruje správce animací, aby aktualizoval hodnoty všech animačních proměnných. |
Chráněné metody
Název | Popis |
---|---|
CAnimationController::CleanUpGroup | Přetíženo. Pomocná rutina, která skupinu vyčistí. |
CAnimationController::OnAfterSchedule | Volá se podle architektury, když byla právě naplánována animace pro zadanou skupinu. |
Chráněné datové členy
Název | Popis |
---|---|
CAnimationController::gkeyframeStoryboardStart | Klíčový snímek, který představuje začátek scénáře. |
CAnimationController::m_bIsValid | Určuje, jestli je animační kontroler platný nebo ne. Tento člen je nastaven na HODNOTU FALSE, pokud aktuální operační systém nepodporuje rozhraní WINDOWS Animation API. |
CAnimationController::m_lstAnimationGroups | Seznam skupin animací, které patří do tohoto kontroleru animací. |
CAnimationController::m_pAnimationManager | Uloží ukazatel na objekt MODELU COM správce animací. |
CAnimationController::m_pAnimationTimer | Uloží ukazatel na objekt COM časovače animace. |
CAnimationController::m_pRelatedWnd | Ukazatel na související objekt CWnd, který lze automaticky překreslit, když se změnil stav správce animací nebo došlo k události po aktualizaci. Může mít hodnotu NULL. |
CAnimationController::m_pTransitionFactory | Uloží ukazatel na objekt COM služby Transition Factory. |
CAnimationController::m_pTransitionLibrary | Uloží ukazatel na objekt MODELU COM transition library. |
Poznámky
CAnimationController třída je klíčovou třídou, která spravuje animace. V aplikaci můžete vytvořit jednu nebo více instancí kontroleru animace a volitelně připojit instanci animačního kontroleru k objektu CWnd pomocí CAnimationController::SetRelatedWnd. Toto připojení se vyžaduje k automatickému odesílání WM_PAINT zpráv do souvisejícího okna, když se změnil stav správce animací nebo se aktualizoval časovač animace. Pokud tuto relaci nepovolíte, musíte překreslit okno, které zobrazuje animaci ručně. Pro účely tohoto účelu můžete odvodit třídu z CAnimationController a přepsat OnAnimationManagerStatusChanged a/nebo OnAnimationTimerPostUpdate a v případě potřeby zneplatnit jedno nebo více oken.
Hierarchie dědičnosti
CAnimationController
Požadavky
Hlavička: afxanimationcontroller.h
CAnimationController::~CAnimationController
Destruktor. Volá se při zničení objektu kontroleru animace.
virtual ~CAnimationController(void);
CAnimationController::AddAnimationObject
Přidá animační objekt do skupiny, která patří do kontroleru animace.
CAnimationGroup* AddAnimationObject(CAnimationBaseObject* pObject);
Parametry
objekt pObject
Ukazatel na animační objekt.
Návratová hodnota
Ukazatel na existující nebo novou skupinu animací, do které byl přidán objekt pObject, pokud je funkce úspěšná; NULL, pokud objekt pObject již byl přidán do skupiny, která patří do jiného kontroleru animace.
Poznámky
Voláním této metody přidáte animační objekt do kontroleru animace. Objekt se přidá do skupiny podle Id skupiny objektu (viz CAnimationBaseObject::SetID). Řadič animace vytvoří novou skupinu, pokud se jedná o první přidaný objekt se zadaným ID skupiny. Animační objekt lze přidat pouze do jednoho animačního kontroleru. Pokud potřebujete přidat objekt do jiného kontroleru, nejprve zavolejte RemoveAnimationObject. Pokud voláte SetID s novým ID skupiny pro objekt, který již byl přidán do skupiny, bude objekt odebrán ze staré skupiny a přidán do jiné skupiny se zadaným ID.
CAnimationController::AddKeyframeToGroup
Přidá do skupiny klíčový snímek.
BOOL AddKeyframeToGroup(
UINT32 nGroupID,
CBaseKeyFrame* pKeyframe);
Parametry
nGroupID
Určuje ID skupiny.
pKeyframe
Ukazatel na klíčový snímek
Návratová hodnota
TRUE, pokud je funkce úspěšná; jinak NEPRAVDA.
Poznámky
Obvykle nemusíte volat tuto metodu, místo toho použijte CAnimationController::CreateKeyframe, který vytvoří a přidá vytvořený klíč do skupiny automaticky.
CAnimationController::AnimateGroup
Připraví skupinu pro spuštění animace a volitelně ji naplánuje.
BOOL AnimateGroup(
UINT32 nGroupID,
BOOL bScheduleNow = TRUE);
Parametry
nGroupID
Určuje ID skupiny.
bScheduleNow
Určuje, jestli se má animace spustit hned.
Návratová hodnota
TRUE, pokud byla animace úspěšně naplánována a spuštěna.
Poznámky
Tato metoda dělá skutečnou práci při vytváření scénáře, přidávání proměnných animace, použití přechodů a nastavení klíčových snímků. Plánování je možné zpozdit, pokud nastavíte bScheduleNow na HODNOTU FALSE. V takovém případě bude zadaná skupina obsahovat scénář, který je nastavený pro animaci. V tomto okamžiku můžete nastavit události pro scénáře a proměnné animace. Když skutečně potřebujete spustit animační volání CAnimationController::ScheduleGroup.
CAnimationController::CAnimationController
Vytvoří animační kontroler.
CAnimationController(void);
CAnimationController::CleanUpGroup
Volá se rozhraním, aby se skupina vyčistila, když byla naplánována animace.
void CleanUpGroup(UINT32 nGroupID);
void CleanUpGroup(CAnimationGroup* pGroup);
Parametry
nGroupID
Určuje ID skupiny.
pGroup
Ukazatel na skupinu animací, který se má vyčistit.
Poznámky
Tato metoda odebere všechny přechody a klíčové rámce ze zadané skupiny, protože nejsou relevantní po naplánování animace.
CAnimationController::CreateKeyframe
Vytvoří klíčový snímek, který závisí na přechodu a přidá ho do zadané skupiny.
CKeyFrame* CreateKeyframe(
UINT32 nGroupID,
CBaseTransition* pTransition);
CKeyFrame* CreateKeyframe(
UINT32 nGroupID,
CBaseKeyFrame* pKeyframe,
UI_ANIMATION_SECONDS offset = 0.0);
Parametry
nGroupID
Určuje ID skupiny, pro který se vytvoří klíčový snímek.
PTransition
Ukazatel na přechod. Klíčový rámec se vloží do scénáře po tomto přechodu.
pKeyframe
Ukazatel na základní klíčový rámec pro tento klíč.
offset
Posun v sekundách od základního klíčového rámce určeného nástrojem pKeyframe
Návratová hodnota
Ukazatel na nově vytvořený klíč, pokud bude funkce úspěšná.
Poznámky
Vrácený ukazatel můžete uložit a založit další klíčové rámce na nově vytvořeném klíčovém snímku (viz druhé přetížení). Přechody je možné zahájit na klíčových rámcích – viz CBaseTransition::SetKeyframes. Tímto způsobem nemusíte odstraňovat klíčové rámce vytvořené tímto způsobem, protože jsou automaticky odstraněny skupinami animací. Při vytváření klíčových snímků na základě jiných klíčových snímků a přechodů buďte opatrní a vyhněte se cyklovým odkazům.
CAnimationController::EnableAnimationManagerEvent
Nastaví nebo uvolní obslužnou rutinu pro volání, když se změní stav správce animací.
virtual BOOL EnableAnimationManagerEvent(BOOL bEnable = TRUE);
Parametry
bEnable
Určuje, jestli se má obslužná rutina nastavit nebo uvolnit.
Návratová hodnota
TRUE, pokud byla obslužná rutina úspěšně nastavena nebo uvolněna.
Poznámky
Když je obslužná rutina nastavena (povoleno) Windows Animation volá OnAnimationManagerStatusChanged při změně stavu správce animací.
CAnimationController::EnableAnimationTimerEventHandler
Nastaví nebo uvolní obslužnou rutinu pro události časování a obslužnou rutinu pro aktualizace časování.
virtual BOOL EnableAnimationTimerEventHandler(
BOOL bEnable = TRUE,
UI_ANIMATION_IDLE_BEHAVIOR idleBehavior = UI_ANIMATION_IDLE_BEHAVIOR_DISABLE);
Parametry
bEnable
Určuje, jestli se mají nastavit nebo uvolnit obslužné rutiny.
idleBehavior
Určuje chování nečinnosti pro obslužnou rutinu aktualizace časovače.
Návratová hodnota
TRUE, pokud obslužné rutiny byly úspěšně nastaveny nebo uvolněny; NEPRAVDA, pokud je tato metoda volána podruhé bez uvolnění obslužných rutin nejprve, nebo pokud dojde k jakékoli jiné chybě.
Poznámky
Pokud jsou obslužné rutiny nastaveny (povoleno) Rozhraní API pro animace systému Windows volá onAnimationTimerPreUpdate, OnAnimationTimerPostUpdate, OnRenderingTooSlow metody. Abyste mohli rozhraní API pro animaci aktualizovat scénáře, musíte povolit časovače animací. Jinak budete muset volat CAnimationController::UpdateAnimationManager, aby správce animací aktualizoval hodnoty všech animačních proměnných.
CAnimationController::EnablePriorityComparisonHandler
Nastaví nebo uvolní obslužnou rutinu porovnání priority, která určí, jestli je možné naplánovanou scénář zrušit, uzavřít, oříznout nebo zkomprimovat.
virtual BOOL EnablePriorityComparisonHandler(DWORD dwHandlerType);
Parametry
dwHandlerType
Kombinace příznaků UI_ANIMATION_PHT_ (viz poznámky), která určuje, jaké obslužné rutiny se mají nastavit nebo uvolnit.
Návratová hodnota
TRUE, pokud byla obslužná rutina úspěšně nastavena nebo uvolněna.
Poznámky
Pokud je obslužná rutina nastavena (povoleno) Windows Animation volá následující virtuální metody v závislosti na dwHandlerType: OnHasPriorityCancel, OnHasPriorityConclude, OnHasPriorityTrim, OnHasPriorityCompress. Obslužná rutina dwHandler může být kombinací následujících příznaků: UI_ANIMATION_PHT_NONE – uvolnění všech obslužných rutin UI_ANIMATION_PHT_CANCEL – nastavení UI_ANIMATION_PHT_CONCLUDE Zrušit obslužnou rutinu porovnání – nastavit UI_ANIMATION_PHT_COMPRESS dokončení porovnání – nastavit UI_ANIMATION_PHT_TRIM komprimovat obslužnou rutinu porovnání – nastavit obslužnou rutinu porovnání oříznutí UI_ANIMATION_PHT_CANCEL_REMOVE – odebrat UI_ANIMATION_PHT_CONCLUDE_REMOVE obslužnou rutinu porovnání Zrušit – odebrání UI_ANIMATION_PHT_COMPRESS_REMOVE dokončení porovnání – odebrání obslužné rutiny komprimace porovnání UI_ANIMATION_PHT_TRIM_REMOVE – odebrání obslužné rutiny porovnání oříznutí
CAnimationController::EnableStoryboardEventHandler
Nastaví nebo uvolní obslužnou rutinu pro stav scénáře a události aktualizace.
virtual BOOL EnableStoryboardEventHandler(
UINT32 nGroupID,
BOOL bEnable = TRUE);
Parametry
nGroupID
Určuje ID skupiny.
bEnable
Určuje, jestli se má obslužná rutina nastavit nebo uvolnit.
Návratová hodnota
TRUE, pokud obslužná rutina byla úspěšně nastavena nebo uvolněna; NEPRAVDA, pokud je zadaná skupina animací nyní nalezena nebo animace pro zadanou skupinu nebyla inicializována a její interní scénář má hodnotu NULL.
Poznámky
Pokud je obslužná rutina nastavena (povoleno) Rozhraní API pro animaci systému Windows volá virtuální metody OnStoryboardStatusChanges a OnStoryboardUpdated. Obslužnou rutinu je nutné nastavit po volání CAnimationController::Animate pro zadanou skupinu animací, protože vytvoří zapouzdřený objekt IUIAnimationStoryboard.
CAnimationController::FindAnimationGroup
Najde skupinu animací podle ID skupiny.
CAnimationGroup* FindAnimationGroup(UINT32 nGroupID);
CAnimationGroup* FindAnimationGroup(IUIAnimationStoryboard* pStoryboard);
Parametry
nGroupID
Určuje ID skupiny.
pStoryboard
Ukazatel na scénář.
Návratová hodnota
Ukazatel na skupinu animací nebo hodnotu NULL, pokud se skupina se zadaným ID nenajde.
Poznámky
Tuto metodu použijte k vyhledání skupiny animací za běhu. Skupina se vytvoří a přidá do interního seznamu skupin animací, když se do kontroleru animace přidá první animační objekt s konkrétním ID skupiny.
CAnimationController::FindAnimationObject
Vyhledá animační objekt obsahující zadanou animační proměnnou.
BOOL FindAnimationObject(
IUIAnimationVariable* pVariable,
CAnimationBaseObject** ppObject,
CAnimationGroup** ppGroup);
Parametry
pVariable
Ukazatel na animační proměnnou.
ppObject
Výstup. Obsahuje ukazatel na animační objekt nebo hodnotu NULL.
ppGroup
Výstup. Obsahuje ukazatel na skupinu animací, která obsahuje objekt animace nebo hodnotu NULL.
Návratová hodnota
TRUE, pokud byl nalezen objekt; jinak NEPRAVDA.
Poznámky
Volané z obslužných rutin událostí, když je nutné najít animační objekt z příchozí animační proměnné.
CAnimationController::gkeyframeStoryboardStart
Klíčový snímek, který představuje začátek scénáře.
static CBaseKeyFrame gkeyframeStoryboardStart;
CAnimationController::GetKeyframeStoryboardStart
Vrátí klíčový snímek, který identifikuje začátek scénáře.
static CBaseKeyFrame* GetKeyframeStoryboardStart();
Návratová hodnota
Ukazatel na základní klíčový snímek, který identifikuje začátek scénáře.
Poznámky
Získejte tento klíčový rámec, který založí všechny další klíčové rámce nebo přechody v okamžiku, kdy se spustí scénář.
CAnimationController::GetUIAnimationManager
Poskytuje přístup k zapouzdřenému objektu IUIAnimationManager.
IUIAnimationManager* GetUIAnimationManager();
Návratová hodnota
Ukazatel na rozhraní IUIAnimationManager nebo NULL, pokud vytvoření správce animací selhalo.
Poznámky
Pokud aktuální operační systém nepodporuje rozhraní API pro animaci systému Windows, vrátí tato metoda hodnotu NULL a potom všechny následné volání CAnimationController::IsValid vrátí hodnotu FALSE. Možná budete potřebovat přístup k IUIAnimationManager, aby bylo možné volat jeho metody rozhraní, které nejsou zabaleny kontrolerem animace.
CAnimationController::GetUIAnimationTimer
Poskytuje přístup k zapouzdřenému objektu IUIAnimationTimer.
IUIAnimationTimer* GetUIAnimationTimer();
Návratová hodnota
Ukazatel na rozhraní IUIAnimationTimer nebo NULL, pokud vytvoření časovače animace selhalo.
Poznámky
Pokud aktuální operační systém nepodporuje rozhraní API pro animaci systému Windows, vrátí tato metoda hodnotu NULL a potom všechny následné volání CAnimationController::IsValid vrátí hodnotu FALSE.
CAnimationController::GetUITransitionFactory
Ukazatel na rozhraní IUIAnimationTransitionFactory nebo NULL, pokud vytvoření přechodné knihovny selhalo.
IUIAnimationTransitionFactory* GetUITransitionFactory();
Návratová hodnota
Ukazatel na IUIAnimationTransitionFactory nebo NULL, pokud vytvoření přechodné továrny selhalo.
Poznámky
Pokud aktuální operační systém nepodporuje rozhraní API pro animaci systému Windows, vrátí tato metoda hodnotu NULL a potom všechny následné volání CAnimationController::IsValid vrátí hodnotu FALSE.
CAnimationController::GetUITransitionLibrary
Poskytuje přístup k zapouzdřené IUIAnimationTransitionLibrary objektu.
IUIAnimationTransitionLibrary* GetUITransitionLibrary();
Návratová hodnota
Ukazatel na rozhraní IUIAnimationTransitionLibrary nebo NULL, pokud vytvoření přechodové knihovny selhalo.
Poznámky
Pokud aktuální operační systém nepodporuje rozhraní API pro animaci systému Windows, vrátí tato metoda hodnotu NULL a potom všechny následné volání CAnimationController::IsValid vrátí hodnotu FALSE.
CAnimationController::IsAnimationInProgress
Určuje, jestli alespoň jedna skupina přehrává animaci.
virtual BOOL IsAnimationInProgress();
Návratová hodnota
TRUE, pokud pro tento animační kontroler probíhá animace; jinak NEPRAVDA.
Poznámky
Zkontroluje stav správce animací a vrátí hodnotu TRUE, pokud je stav UI_ANIMATION_MANAGER_BUSY.
CAnimationController::IsValid
Určuje, jestli je řadič animace platný.
BOOL IsValid() const;
Návratová hodnota
TRUE, pokud je animační kontroler platný; jinak NEPRAVDA.
Poznámky
Tato metoda vrátí hodnotu FALSE pouze v případě, že v aktuálním operačním systému není podporováno rozhraní API pro animaci systému Windows a vytvoření správce animací selhalo, protože není zaregistrované. Musíte zavolat GetUIAnimationManager alespoň jednou po inicializaci knihoven COM způsobit nastavení tohoto příznaku.
CAnimationController::m_bIsValid
Určuje, jestli je animační kontroler platný nebo ne. Tento člen je nastaven na HODNOTU FALSE, pokud aktuální operační systém nepodporuje rozhraní WINDOWS Animation API.
BOOL m_bIsValid;
CAnimationController::m_lstAnimationGroups
Seznam skupin animací, které patří do tohoto kontroleru animací.
CList<CAnimationGroup*, CAnimationGroup*> m_lstAnimationGroups;
CAnimationController::m_pAnimationManager
Uloží ukazatel na objekt MODELU COM správce animací.
ATL::CComPtr<IUIAnimationManager> m_pAnimationManager;
CAnimationController::m_pAnimationTimer
Uloží ukazatel na objekt COM časovače animace.
ATL::CComPtr<IUIAnimationTimer> m_pAnimationTimer;
CAnimationController::m_pRelatedWnd
Ukazatel na související objekt CWnd, který lze automaticky překreslit, když se změnil stav správce animací nebo došlo k události po aktualizaci. Může mít hodnotu NULL.
CWnd* m_pRelatedWnd;
CAnimationController::m_pTransitionFactory
Uloží ukazatel na objekt COM služby Transition Factory.
ATL::CComPtr<IUIAnimationTransitionFactory> m_pTransitionFactory;
CAnimationController::m_pTransitionLibrary
Uloží ukazatel na objekt MODELU COM transition library.
ATL::CComPtr<IUIAnimationTransitionLibrary> m_pTransitionLibrary;
CAnimationController::OnAfterSchedule
Volá se podle architektury, když byla právě naplánována animace pro zadanou skupinu.
virtual void OnAfterSchedule(CAnimationGroup* pGroup);
Parametry
pGroup
Ukazatel na skupinu animací, která byla naplánována.
Poznámky
Výchozí implementace odebere klíčové rámce ze zadané skupiny a přechody z proměnných animace, které patří do zadané skupiny. Lze přepsat v odvozené třídě a provést jakékoli další akce podle plánu animace.
CAnimationController::OnAnimationIntegerValueChanged
Volá se architekturou, když se změnila celočíselná hodnota proměnné animace.
virtual void OnAnimationIntegerValueChanged(
CAnimationGroup* pGroup,
CAnimationBaseObject* pObject,
IUIAnimationVariable* variable,
INT32 newValue,
INT32 prevValue);
Parametry
pGroup
Ukazatel na skupinu animací, která obsahuje objekt animace, jehož hodnota se změnila.
objekt pObject
Ukazatel na animační objekt, který obsahuje animační proměnnou, jejíž hodnota se změnila.
proměnná
Ukazatel na animační proměnnou.
newValue
Určuje novou hodnotu.
prevValue
Určuje předchozí hodnotu.
Poznámky
Tato metoda se volá, pokud povolíte události animační proměnné s EnableIntegerValueChangedEvent volané pro konkrétní animační proměnnou nebo animační objekt. Lze ji přepsat v odvozené třídě a provést akce specifické pro aplikaci.
CAnimationController::OnAnimationManagerStatusChanged
Volané architekturou v reakci na událost StatusChanged ze správce animací.
virtual void OnAnimationManagerStatusChanged(
UI_ANIMATION_MANAGER_STATUS newStatus,
UI_ANIMATION_MANAGER_STATUS previousStatus);
Parametry
newStatus
Nový stav správce animací
previousStatus
Předchozí stav správce animací
Poznámky
Tato metoda se volá, pokud povolíte události správce animací pomocí EnableAnimationManagerEvent. Lze ji přepsat v odvozené třídě a provést akce specifické pro aplikaci. Výchozí implementace aktualizuje související okno, pokud je nastaveno pomocí Set RelatedWnd.
CAnimationController::OnAnimationTimerPostUpdate
Volá se rozhraním po dokončení aktualizace animace.
virtual void OnAnimationTimerPostUpdate();
Poznámky
Tato metoda se volá, pokud povolíte obslužné rutiny událostí časovače pomocí EnableAnimationTimerEventHandler. Lze ji přepsat v odvozené třídě a provést akce specifické pro aplikaci.
CAnimationController::OnAnimationTimerPreUpdate
Volá se rozhraním před zahájením aktualizace animace.
virtual void OnAnimationTimerPreUpdate();
Poznámky
Tato metoda se volá, pokud povolíte obslužné rutiny událostí časovače pomocí EnableAnimationTimerEventHandler. Lze ji přepsat v odvozené třídě a provést akce specifické pro aplikaci.
CAnimationController::OnAnimationTimerRenderingTooSlow
Volá se rozhraním, když frekvence snímků vykreslování animace klesne pod minimální žádoucí frekvence snímků.
virtual void OnAnimationTimerRenderingTooSlow(UINT32 fps);
Parametry
Fps
Aktuální frekvence snímků za sekundu.
Poznámky
Tato metoda se volá, pokud povolíte obslužné rutiny událostí časovače pomocí EnableAnimationTimerEventHandler. Lze ji přepsat v odvozené třídě a provést akce specifické pro aplikaci. Minimální žádoucí frekvence snímků je určena voláním IUIAnimationTimer::SetFrameRateThreshold.
CAnimationController::OnAnimationValueChanged
Volá se architekturou, když se změnila hodnota proměnné animace.
virtual void OnAnimationValueChanged(
CAnimationGroup* pGroup,
CAnimationBaseObject* pObject,
IUIAnimationVariable* variable,
DOUBLE newValue,
DOUBLE prevValue);
Parametry
pGroup
Ukazatel na skupinu animací, která obsahuje objekt animace, jehož hodnota se změnila.
objekt pObject
Ukazatel na animační objekt, který obsahuje animační proměnnou, jejíž hodnota se změnila.
proměnná
Ukazatel na animační proměnnou.
newValue
Určuje novou hodnotu.
prevValue
Určuje předchozí hodnotu.
Poznámky
Tato metoda se volá, pokud povolíte události animační proměnné s EnableValueChangedEvent volané pro konkrétní animační proměnnou nebo animační objekt. Lze ji přepsat v odvozené třídě a provést akce specifické pro aplikaci.
CAnimationController::OnBeforeAnimationStart
Volal ho architektura těsně před naplánováním animace.
virtual void OnBeforeAnimationStart(CAnimationGroup* pGroup);
Parametry
pGroup
Ukazatel na skupinu animací, jejíž animace se chystá začít.
Poznámky
Toto volání je směrováno na související CWnd a lze jej přepsat v odvozené třídě provést jakékoli další akce před zahájením animace pro zadanou skupinu.
CAnimationController::OnHasPriorityCancel
Volal ho architektura pro řešení konfliktů plánování.
virtual BOOL OnHasPriorityCancel(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
Parametry
pGroupScheduled
Skupina, která vlastní aktuálně naplánovanou storyboard.
pGroupNew
Skupina, která vlastní novou storyboard, která je v konfliktu plánování s naplánovaným scénářem vlastněným pGroupScheduled.
priorityEffect
Potenciální vliv na pGroupNew, pokud pGroupScheduled má vyšší prioritu.
Návratová hodnota
Měla by vrátit hodnotu TRUE, pokud má scénář vlastněný pGroupNew prioritu. Pokud má scénář vlastněný pGroupScheduled prioritu, měla by vrátit hodnotu FALSE.
Poznámky
Tato metoda se volá, pokud povolíte události porovnání priority pomocí CAnimationController::EnablePriorityComparisonHandler a určíte UI_ANIMATION_PHT_CANCEL. Lze ji přepsat v odvozené třídě a provést akce specifické pro aplikaci. Další informace o správě konfliktů najdete v dokumentaci k rozhraní API pro animaci systému Windows.
CAnimationController::OnHasPriorityCompress
Volal ho architektura pro řešení konfliktů plánování.
virtual BOOL OnHasPriorityCompress(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
Parametry
pGroupScheduled
Skupina, která vlastní aktuálně naplánovanou storyboard.
pGroupNew
Skupina, která vlastní novou storyboard, která je v konfliktu plánování s naplánovaným scénářem vlastněným pGroupScheduled.
priorityEffect
Potenciální vliv na pGroupNew, pokud pGroupScheduled má vyšší prioritu.
Návratová hodnota
Měla by vrátit hodnotu TRUE, pokud má scénář vlastněný pGroupNew prioritu. Pokud má scénář vlastněný pGroupScheduled prioritu, měla by vrátit hodnotu FALSE.
Poznámky
Tato metoda se volá, pokud povolíte události porovnání priority pomocí CAnimationController::EnablePriorityComparisonHandler a zadejte UI_ANIMATION_PHT_COMPRESS. Lze ji přepsat v odvozené třídě a provést akce specifické pro aplikaci. Další informace o správě konfliktů najdete v dokumentaci k rozhraní API pro animaci systému Windows.
CAnimationController::OnHasPriorityConclude
Volal ho architektura pro řešení konfliktů plánování.
virtual BOOL OnHasPriorityConclude(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
Parametry
pGroupScheduled
Skupina, která vlastní aktuálně naplánovanou storyboard.
pGroupNew
Skupina, která vlastní novou storyboard, která je v konfliktu plánování s naplánovaným scénářem vlastněným pGroupScheduled.
priorityEffect
Potenciální vliv na pGroupNew, pokud pGroupScheduled má vyšší prioritu.
Návratová hodnota
Měla by vrátit hodnotu TRUE, pokud má scénář vlastněný pGroupNew prioritu. Pokud má scénář vlastněný pGroupScheduled prioritu, měla by vrátit hodnotu FALSE.
Poznámky
Tato metoda se volá, pokud povolíte události porovnání priority pomocí CAnimationController::EnablePriorityComparisonHandler a zadejte UI_ANIMATION_PHT_CONCLUDE. Lze ji přepsat v odvozené třídě a provést akce specifické pro aplikaci. Další informace o správě konfliktů najdete v dokumentaci k rozhraní API pro animaci systému Windows.
CAnimationController::OnHasPriorityTrim
Volal ho architektura pro řešení konfliktů plánování.
virtual BOOL OnHasPriorityTrim(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
Parametry
pGroupScheduled
Skupina, která vlastní aktuálně naplánovanou storyboard.
pGroupNew
Skupina, která vlastní novou storyboard, která je v konfliktu plánování s naplánovaným scénářem vlastněným pGroupScheduled.
priorityEffect
Potenciální vliv na pGroupNew, pokud pGroupScheduled má vyšší prioritu.
Návratová hodnota
Měla by vrátit hodnotu TRUE, pokud má scénář vlastněný pGroupNew prioritu. Pokud má scénář vlastněný pGroupScheduled prioritu, měla by vrátit hodnotu FALSE.
Poznámky
Tato metoda se volá, pokud povolíte události porovnání priority pomocí CAnimationController::EnablePriorityComparisonHandler a určíte UI_ANIMATION_PHT_TRIM. Lze ji přepsat v odvozené třídě a provést akce specifické pro aplikaci. Další informace o správě konfliktů najdete v dokumentaci k rozhraní API pro animaci systému Windows.
CAnimationController::OnStoryboardStatusChanged
Volá se podle architektury, když se změnil stav scénáře.
virtual void OnStoryboardStatusChanged(
CAnimationGroup* pGroup,
UI_ANIMATION_STORYBOARD_STATUS newStatus,
UI_ANIMATION_STORYBOARD_STATUS previousStatus);
Parametry
pGroup
Ukazatel na skupinu animací, která vlastní scénář, jehož stav se změnil.
newStatus
Určuje nový stav.
previousStatus
Určuje předchozí stav.
Poznámky
Tato metoda se volá, pokud povolíte události scénáře pomocí CAnimationController::EnableStoryboardEventHandler. Lze ji přepsat v odvozené třídě a provést akce specifické pro aplikaci.
CAnimationController::OnStoryboardUpdated
Volá se rozhraním při aktualizaci scénáře.
virtual void OnStoryboardUpdated(CAnimationGroup* pGroup);
Parametry
pGroup
Ukazatel na skupinu, která vlastní scénář.
Poznámky
Tato metoda se volá, pokud povolíte události scénáře pomocí CAnimationController::EnableStoryboardEventHandler. Lze ji přepsat v odvozené třídě a provést akce specifické pro aplikaci.
CAnimationController::RemoveAllAnimationGroups
Odebere všechny skupiny animací z kontroleru animací.
void RemoveAllAnimationGroups();
Poznámky
Všechny skupiny budou odstraněny, jejich ukazatel, pokud je uložen na úrovni aplikace, musí být zneplatněné. Pokud CAnimationGroup::m_bAutodestroyAnimationObjects pro odstraněnou skupinu je PRAVDA, všechny objekty animace, které patří do této skupiny, budou odstraněny; jinak budou odkazy na nadřazený animační kontroler nastaveny na hodnotu NULL a mohou být přidány do jiného kontroleru.
CAnimationController::RemoveAnimationGroup
Odebere skupinu animací se zadaným ID kontroleru animace.
void RemoveAnimationGroup(UINT32 nGroupID);
Parametry
nGroupID
Určuje ID skupiny animací.
Poznámky
Tato metoda odebere skupinu animací z interního seznamu skupin a odstraní ji, a proto pokud jste uložili ukazatel na tuto skupinu animací, musí být zneplatněn. Pokud CAnimationGroup::m_bAutodestroyAnimationObjects je PRAVDA, všechny animační objekty, které patří do této skupiny, budou odstraněny; jinak budou odkazy na nadřazený animační kontroler nastaveny na hodnotu NULL a mohou být přidány do jiného kontroleru.
CAnimationController::RemoveAnimationObject
Odeberte animační objekt z animačního kontroleru.
void RemoveAnimationObject(
CAnimationBaseObject* pObject,
BOOL bNoDelete = FALSE);
Parametry
objekt pObject
Ukazatel na animační objekt.
bNoDelete
Pokud je tento parametr TRUE, objekt se po odebrání neodstraní.
Poznámky
Odebere animační objekt z kontroleru animací a skupiny animací. Tuto funkci zavolejte, pokud už by konkrétní objekt neměl být animovaný, nebo pokud potřebujete přesunout objekt do jiného kontroleru animace. V posledním případě musí být hodnota bNoDelete true.
CAnimationController::RemoveTransitions
Odebere přechody z animačních objektů, které patří do zadané skupiny.
void RemoveTransitions(UINT32 nGroupID);
Parametry
nGroupID
Určuje ID skupiny.
Poznámky
Skupina smyčuje nad svými animačními objekty a volá ClearTransitions(FALSE) pro každý animační objekt. Tato metoda je volána architekturou po naplánování animace.
CAnimationController::ScheduleGroup
Naplánuje animaci.
BOOL ScheduleGroup(
UINT32 nGroupID,
UI_ANIMATION_SECONDS time = 0.0);
Parametry
nGroupID
Určuje ID skupiny animací, které se má naplánovat.
Čas
Určuje čas, který se má naplánovat.
Návratová hodnota
TRUE, pokud byla animace úspěšně naplánována. NEPRAVDA, pokud se scénář nevytvořil nebo dojde k jiné chybě.
Poznámky
Musíte volat AnimateGroup s parametrem bScheduleNow nastaveným na FALSE před ScheduleGroup. Můžete zadat požadovaný čas animace získaný z IUIAnimationTimer::GetTime. Pokud je parametr času 0,0, animace se naplánuje pro aktuální čas.
CAnimationController::SetRelatedWnd
Vytvoří relaci mezi animačním kontrolerem a oknem.
void SetRelatedWnd(CWnd* pWnd);
Parametry
pWnd
Ukazatel na objekt okna, který chcete nastavit.
Poznámky
Pokud je nastavený související objekt CWnd, může ovladač animace automaticky aktualizovat (odeslat WM_PAINT zprávu), když se změnil stav správce animací nebo došlo k události časovače po aktualizaci.
CAnimationController::UpdateAnimationManager
Nasměruje správce animací, aby aktualizoval hodnoty všech animačních proměnných.
virtual void UpdateAnimationManager();
Poznámky
Voláním této metody přejde správce animací na aktuální čas, podle potřeby změní stav scénářů a aktualizuje všechny proměnné animace na odpovídající interpolované hodnoty. Interně tato metoda volá IUIAnimationTimer::GetTime(timeNow) a IUIAnimationManager::Update(timeNow). Přepsat tuto metodu v odvozené třídě přizpůsobit toto chování.