Sdílet prostřednictvím


CAnimationBaseObject – třída

Základní třída pro všechny objekty animace.

Syntaxe

class CAnimationBaseObject : public CObject;

Členové

Veřejné konstruktory

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

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

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

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

Objekt CObject

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.

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

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

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

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

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

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

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

Viz také

Třídy