Sdílet prostřednictvím


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

Jméno popis
CAnimationController::CAnimationController Vytvoří animační kontroler.
CAnimationController::~CAnimationController Destruktor. Volá se při zničení objektu kontroleru animace.

Veřejné metody

Jméno 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

Jméno 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

Jméno 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

Objekt CObject

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.

Vrácená 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

Vrácená 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.

Vrácená 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

Vrácená 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.

Vrácená 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.

Vrácená 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.

Vrácená 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.

Vrácená 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ář.

Vrácená 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.

Vrácená 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();

Vrácená 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();

Vrácená 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();

Vrácená 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();

Vrácená 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();

Vrácená 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();

Vrácená 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;

Vrácená 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.

Vrácená 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.

Vrácená 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.

Vrácená 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.

Vrácená 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.

Vrácená 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í.

Viz také

Třídy