CAnimationBaseObject – třída
Základní třída pro všechny objekty animace.
Syntaxe
class CAnimationBaseObject : public CObject;
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CAnimationBaseObject::CAnimationBaseObject | Přetíženo. Vytvoří animační objekt. |
CAnimationBaseObject::~CAnimationBaseObject | Destruktor. Volá se při zničení animačního objektu. |
Veřejné metody
Název | Popis |
---|---|
CAnimationBaseObject::ApplyTransitions | Přidá přechody do scénáře s zapouzdřenou animační proměnnou. |
CAnimationBaseObject::ClearTransitions | Odebere všechny související přechody. |
CAnimationBaseObject::ContainsVariable | Určuje, zda objekt animace obsahuje konkrétní animační proměnnou. |
CAnimationBaseObject::CreateTransitions | Vytvoří přechody přidružené k animačnímu objektu. |
CAnimationBaseObject::D etachFromController | Odpojte animační objekt od nadřazeného kontroleru animací. |
CAnimationBaseObject::EnableIntegerValueChangedEvent | Nastaví obslužnou rutinu události Změněná celočíselná hodnota. |
CAnimationBaseObject::EnableValueChangedEvent | Nastaví obslužnou rutinu události Změněná hodnota. |
CAnimationBaseObject::GetAutodestroyTransitions | Určuje, jestli se související přechod automaticky zničí. |
CAnimationBaseObject::GetGroupID | Vrátí aktuální ID skupiny. |
CAnimationBaseObject::GetObjectID | Vrátí aktuální ID objektu. |
CAnimationBaseObject::GetUserData | Vrátí uživatelsky definovaná data. |
CAnimationBaseObject::SetAutodestroyTransitions | Nastaví příznak pro automatické zničení přechodů. |
CAnimationBaseObject::SetID | Nastaví nová ID. |
CAnimationBaseObject::SetUserData | Nastaví uživatelsky definovaná data. |
Chráněné metody
Název | Popis |
---|---|
CAnimationBaseObject::GetAnimationVariableList | Shromažďuje ukazatele na obsažené proměnné animace. |
CAnimationBaseObject::SetParentAnimationObjects | Vytvoří vztah mezi proměnnými animace, obsaženými v animačním objektu a jejich kontejnerem. |
Chráněné datové členy
Název | Popis |
---|---|
CAnimationBaseObject::m_bAutodestroyTransitions | Určuje, jestli se mají související přechody automaticky zničit. |
CAnimationBaseObject::m_dwUserData | Ukládá uživatelsky definovaná data. |
CAnimationBaseObject::m_nGroupID | Určuje ID skupiny objektu animace. |
CAnimationBaseObject::m_nObjectID | Určuje ID objektu animačního objektu. |
CAnimationBaseObject::m_pParentController | Ukazatel na nadřazený animační kontroler. |
Poznámky
Tato třída implementuje základní metody pro všechny animační objekty. Animační objekt může představovat hodnotu, bod, velikost, obdélník nebo barvu v aplikaci a také libovolnou vlastní entitu. Objekty animace jsou uložené ve skupinách animací (viz CAnimationGroup). Každá skupina může být animované samostatně a může být považována za analogii scénáře. Objekt animace zapouzdřuje jednu nebo více animačních proměnných (viz CAnimationVariable) v závislosti na logické reprezentaci. CAnimationRect například obsahuje čtyři proměnné animace – jednu proměnnou pro každou stranu obdélníku. Každá třída animačního objektu zveřejňuje přetíženou Metodu AddTransition, která by se měla použít k použití přechodů na zapouzdřené animační proměnné. Animační objekt lze identifikovat podle ID objektu (volitelně) a PODLE ID skupiny. ID skupiny je nezbytné k umístění animačního objektu pro správnou skupinu, ale pokud není zadané ID skupiny, objekt se umístí do výchozí skupiny s ID 0. Pokud zavoláte SetID s jiným ID skupiny, objekt animace se přesune do jiné skupiny (v případě potřeby se vytvoří nová skupina).
Hierarchie dědičnosti
CAnimationBaseObject
Požadavky
Hlavička: afxanimationcontroller.h
CAnimationBaseObject::~CAnimationBaseObject
Destruktor. Volá se při zničení animačního objektu.
virtual ~CAnimationBaseObject();
CAnimationBaseObject::ApplyTransitions
Přidá přechody do scénáře s zapouzdřenou animační proměnnou.
virtual BOOL ApplyTransitions(
IUIAnimationStoryboard* pStoryboard,
BOOL bDependOnKeyframes);
Parametry
pStoryboard
Ukazatel na scénář.
bDependOnKeyframes
Pokud je false, tato metoda přidá pouze ty přechody, které nezávisí na klíčových rámcích.
Návratová hodnota
TRUE, pokud byly přechody úspěšně přidány.
Poznámky
Přidá související přechody, které byly přidány s AddTransition (přetížené metody v odvozených třídách) do scénáře.
CAnimationBaseObject::CAnimationBaseObject
Vytvoří animační objekt.
CAnimationBaseObject();
CAnimationBaseObject(
UINT32 nGroupID,
UINT32 nObjectID = (UINT32)-1,
DWORD dwUserData = 0);
Parametry
nGroupID
Určuje ID skupiny.
nObjectID
Určuje ID objektu.
dwUserData
Uživatelem definovaná data, která lze přidružit k objektu animace a načíst později za běhu.
Poznámky
Vytvoří animační objekty a přiřadí výchozí ID objektu (0) a ID skupiny (0).
CAnimationBaseObject::ClearTransitions
Odebere všechny související přechody.
virtual void ClearTransitions(BOOL bAutodestroy);
Parametry
BAutodestroy
Určuje, zda chcete zničit přechodové objekty automaticky, nebo je jednoduše odebrat ze souvisejícího seznamu.
Poznámky
Odebere všechny související přechody a zničí je, pokud je příznak bAutodestroy nebo m_bAutodestroyTransitions true. Přechody by měly být zničeny automaticky pouze v případě, že nejsou přiděleny v zásobníku. Pokud jsou výše uvedené příznaky FALSE, přechody se odeberou jenom z interního seznamu souvisejících přechodů.
CAnimationBaseObject::ContainsVariable
Určuje, zda objekt animace obsahuje konkrétní animační proměnnou.
virtual BOOL ContainsVariable(IUIAnimationVariable* pVariable);
Parametry
pVariable
Ukazatel na animační proměnnou.
Návratová hodnota
TRUE, pokud je animační proměnná obsažena v animačním objektu; jinak NEPRAVDA.
Poznámky
Tuto metodu lze použít k určení, zda animační proměnná určená parametrem pVariable je obsažena v animačním objektu. Objekt animace může v závislosti na typu obsahovat několik animačních proměnných. CAnimationColor například obsahuje tři proměnné, jednu pro každou barevnou komponentu (červenou, zelenou a modrou). Pokud se změní hodnota proměnné animace, rozhraní API animace systému Windows odešle události ValueChanged nebo IntegerValueChanged (pokud je povoleno) a parametr této události je ukazatel na rozhraní IUIAnimationVariable proměnné animace. Tato metoda pomáhá získat ukazatel na animaci z ukazatele na obsažený objekt MODELU COM.
CAnimationBaseObject::CreateTransitions
Vytvoří přechody přidružené k animačnímu objektu.
BOOL CreateTransitions();
Návratová hodnota
TRUE, pokud byly přechody úspěšně vytvořeny; jinak NEPRAVDA.
Poznámky
Smyčky přes seznam animačních proměnných zapouzdřených do odvozeného animačního objektu a vytvoří přechody přidružené ke každé animační proměnné.
CAnimationBaseObject::D etachFromController
Odpojte animační objekt od nadřazeného kontroleru animací.
void DetachFromController();
Poznámky
Tato metoda se používá interně.
CAnimationBaseObject::EnableIntegerValueChangedEvent
Nastaví obslužnou rutinu události Změněná celočíselná hodnota.
virtual void EnableIntegerValueChangedEvent(
CAnimationController* pController,
BOOL bEnable);
Parametry
pController
Ukazatel na nadřazený kontroler.
bEnable
Určuje, zda se má povolit nebo zakázat událost Změny celočíselné hodnoty.
Poznámky
Pokud je povolena obslužná rutina události Integer Value Changed, můžete zpracovat tuto událost v CAnimationController::OnAnimationIntegerValueChanged metoda, která by měla být přepsána v CAnimationController-odvozené třídy. Tato metoda se volá při každé změně celočíselné hodnoty animace.
CAnimationBaseObject::EnableValueChangedEvent
Nastaví obslužnou rutinu události Změněná hodnota.
virtual void EnableValueChangedEvent(
CAnimationController* pController,
BOOL bEnable);
Parametry
pController
Ukazatel na nadřazený kontroler.
bEnable
Určuje, jestli se má povolit nebo zakázat událost Změny hodnoty.
Poznámky
Pokud je povolena obslužná rutina události Value Changed, můžete zpracovat tuto událost v CAnimationController::OnAnimationValueChanged metoda, která by měla být přepsána v CAnimationController-odvozené třídy. Tato metoda se volá při každé změně hodnoty animace.
CAnimationBaseObject::GetAnimationVariableList
Shromažďuje ukazatele na obsažené proměnné animace.
virtual void GetAnimationVariableList(
CList<CAnimationVariable*,
CAnimationVariable*>& list) = 0;
Parametry
list
Seznam, který musí být vyplněn proměnnými animace obsaženými v animačním objektu.
Poznámky
Tato čistě virtuální metoda musí být přepsána v odvozené třídě. Animační objekt v závislosti na typu obsahuje jednu nebo více animačních proměnných. CAnimationPoint například obsahuje dvě proměnné pro souřadnice X a Y. Základní třída CAnimationBaseObject implementuje některé obecné metody, které fungují na seznamu animačních proměnných: ApplyTransitions, ClearTransitions, EnableValueChangedEvent, EnableIntegerValueChangedEvent. Tyto metody volají GetAnimationVariableList, která je vyplněna odvozenou třídou skutečnými animačními proměnnými obsaženými v určitém animačním objektu, pak smyčka přes seznam a provádět nezbytné akce. Pokud vytvoříte vlastní animační objekt, musíte přidat seznam všech animačních proměnných obsažených v tomto objektu.
CAnimationBaseObject::GetAutodestroyTransitions
Určuje, jestli se související přechod automaticky zničí.
BOOL GetAutodestroyTransitions() const;
Návratová hodnota
Pokud true, související přechody jsou zničeny automaticky; Pokud je hodnota FALSE, měly by být přechodové objekty uvolněny voláním aplikace.
Poznámky
Ve výchozím nastavení má tento příznak hodnotu TRUE. Tento příznak nastavte pouze v případě, že jste přidělovali přechod v zásobníku a/nebo přechody by měly být uvolněny volající aplikací.
CAnimationBaseObject::GetGroupID
Vrátí aktuální ID skupiny.
UINT32 GetGroupID() const;
Návratová hodnota
Aktuální ID skupiny
Poznámky
Tuto metodu použijte k načtení ID skupiny. Je to 0, pokud ID skupiny nebylo nastaveno explicitně v konstruktoru nebo pomocí SetID.
CAnimationBaseObject::GetObjectID
Vrátí aktuální ID objektu.
UINT32 GetObjectID() const;
Návratová hodnota
ID aktuálního objektu
Poznámky
Tuto metodu použijte k načtení ID objektu. Je to 0, pokud ID objektu nebylo explicitně nastaveno v konstruktoru nebo pomocí SetID.
CAnimationBaseObject::GetUserData
Vrátí uživatelsky definovaná data.
DWORD GetUserData() const;
Návratová hodnota
Hodnota vlastních dat.
Poznámky
Voláním této metody načtěte vlastní data za běhu. Vrácená hodnota bude 0, pokud nebyla explicitně inicializována v konstruktoru nebo pomocí SetUserData.
CAnimationBaseObject::m_bAutodestroyTransitions
Určuje, jestli se mají související přechody automaticky zničit.
BOOL m_bAutodestroyTransitions;
CAnimationBaseObject::m_dwUserData
Ukládá uživatelsky definovaná data.
DWORD m_dwUserData;
CAnimationBaseObject::m_nGroupID
Určuje ID skupiny objektu animace.
UINT32 m_nGroupID;
CAnimationBaseObject::m_nObjectID
Určuje ID objektu animačního objektu.
UINT32 m_nObjectID;
CAnimationBaseObject::m_pParentController
Ukazatel na nadřazený animační kontroler.
CAnimationController* m_pParentController;
CAnimationBaseObject::SetAutodestroyTransitions
Nastaví příznak pro automatické zničení přechodů.
void SetAutodestroyTransitions(BOOL bValue);
Parametry
bValue
Určuje příznak automatického zničení.
Poznámky
Tento příznak nastavte pouze v případě, že jste přidělily přechodové objekty pomocí operátoru nové. Pokud jsou z nějakého důvodu přechodové objekty přiděleny v zásobníku, příznak automatického zničení by měl být FALSE. Ve výchozím nastavení má tento příznak hodnotu TRUE.
CAnimationBaseObject::SetID
Nastaví nová ID.
void SetID(
UINT32 nObjectID,
UINT32 nGroupID = 0);
Parametry
nObjectID
Určuje nové ID objektu.
nGroupID
Určuje nové ID skupiny.
Poznámky
Umožňuje změnit ID objektu a ID skupiny. Pokud se nové ID skupiny liší od aktuálního ID, přesune se objekt animace do jiné skupiny (v případě potřeby se vytvoří nová skupina).
CAnimationBaseObject::SetParentAnimationObjects
Vytvoří vztah mezi proměnnými animace, obsaženými v animačním objektu a jejich kontejnerem.
virtual void SetParentAnimationObjects();
Poznámky
Tuto pomocnou rutinu lze použít k navázání vztahu mezi proměnnými animace obsaženými v animačním objektu a jejich kontejnerem. Smyčka přes proměnné animace a nastaví zpětný ukazatel na nadřazený animační objekt na každou animační proměnnou. V aktuální implementaci je skutečná relace vytvořena v CAnimationBaseObject::ApplyTransitions, proto zpět ukazatele nejsou nastaveny, dokud nevoláte CAnimationGroup::Animate. Znalost relace může být užitečná při zpracování událostí a potřebujete získat nadřazený animační objekt z CAnimationVariable. Použijte objekt CAnimationVariable::GetParentAnimationObject.
CAnimationBaseObject::SetUserData
Nastaví uživatelsky definovaná data.
void SetUserData (DWORD dwUserData);
Parametry
dwUserData
Určuje vlastní data.
Poznámky
Tato metoda slouží k přidružení vlastních dat k objektu animace. Tato data se můžou načíst později za běhu pomocí GetUserData.