Condividi tramite


Classe CAnimationBaseObject

Classe di base per tutti gli oggetti di animazione.

Sintassi

class CAnimationBaseObject : public CObject;

Membri

Costruttori pubblici

Nome Descrizione
CAnimationBaseObject::CAnimationBaseObject Con overload. Costruisce un oggetto animazione.
CAnimationBaseObject::~CAnimationBaseObject Distruttore. Chiamato quando un oggetto animazione viene eliminato definitivamente.

Metodi pubblici

Nome Descrizione
CAnimationBaseObject::ApplyTransitions Aggiunge transizioni allo storyboard con variabile di animazione incapsulata.
CAnimationBaseObject::ClearTransitions Rimuove tutte le transizioni correlate.
CAnimationBaseObject::ContainsVariable Determina se un oggetto animazione contiene una determinata variabile di animazione.
CAnimationBaseObject::CreateTransitions Crea transizioni associate a un oggetto animazione.
CAnimationBaseObject::D etachFromController Scollega un oggetto animazione dal controller di animazione padre.
CAnimationBaseObject::EnableIntegerValueChangedEvent Configura il gestore eventi Integer Value Changed.
CAnimationBaseObject::EnableValueChangedEvent Configura il gestore eventi Value Changed.
CAnimationBaseObject::GetAutodestroyTransitions Indica se la transizione correlata viene eliminata automaticamente.
CAnimationBaseObject::GetGroupID Restituisce l'ID gruppo corrente.
CAnimationBaseObject::GetObjectID Restituisce l'ID oggetto corrente.
CAnimationBaseObject::GetUserData Restituisce dati definiti dall'utente.
CAnimationBaseObject::SetAutodestroyTransitions Imposta un flag per eliminare automaticamente le transizioni.
CAnimationBaseObject::SetID Imposta nuovi ID.
CAnimationBaseObject::SetUserData Imposta i dati definiti dall'utente.

Metodi protetti

Nome Descrizione
CAnimationBaseObject::GetAnimationVariableList Raccoglie i puntatori alle variabili di animazione contenute.
CAnimationBaseObject::SetParentAnimationObjects Stabilisce una relazione tra le variabili di animazione, contenute in un oggetto animazione e il relativo contenitore.

Membri dati protetti

Nome Descrizione
CAnimationBaseObject::m_bAutodestroyTransitions Specifica se le transizioni correlate devono essere eliminate automaticamente.
CAnimationBaseObject::m_dwUserData Archivia i dati definiti dall'utente.
CAnimationBaseObject::m_nGroupID Specifica l'ID gruppo dell'oggetto animazione.
CAnimationBaseObject::m_nObjectID Specifica l'ID oggetto dell'oggetto animazione.
CAnimationBaseObject::m_pParentController Puntatore al controller di animazione padre.

Osservazioni:

Questa classe implementa metodi di base per tutti gli oggetti animazione. Un oggetto animazione può rappresentare un valore, un punto, una dimensione, un rettangolo o un colore in un'applicazione, nonché qualsiasi entità personalizzata. Gli oggetti animazione vengono archiviati in gruppi di animazioni (vedere CAnimationGroup). Ogni gruppo può essere animato separatamente e può essere considerato come un analogo dello storyboard. Un oggetto animazione incapsula una o più variabili di animazione (vedere CAnimationVariable), a seconda della relativa rappresentazione logica. Ad esempio, CAnimationRect contiene quattro variabili di animazione, una variabile per ogni lato del rettangolo. Ogni classe di oggetti di animazione espone il metodo AddTransition di overload, che deve essere usato per applicare transizioni alle variabili di animazione incapsulate. Un oggetto animazione può essere identificato dall'ID oggetto (facoltativamente) e dall'ID gruppo. È necessario un ID gruppo per inserire un oggetto animazione nel gruppo corretto, ma se non viene specificato un ID gruppo, un oggetto viene inserito nel gruppo predefinito con ID 0. Se chiami SetID con GroupID diverso, un oggetto animazione verrà spostato in un altro gruppo (se necessario viene creato un nuovo gruppo).

Gerarchia di ereditarietà

CObject

CAnimationBaseObject

Requisiti

Intestazione: afxanimationcontroller.h

CAnimationBaseObject::~CAnimationBaseObject

Distruttore. Chiamato quando un oggetto animazione viene eliminato definitivamente.

virtual ~CAnimationBaseObject();

CAnimationBaseObject::ApplyTransitions

Aggiunge transizioni allo storyboard con variabile di animazione incapsulata.

virtual BOOL ApplyTransitions(
    IUIAnimationStoryboard* pStoryboard,
    BOOL bDependOnKeyframes);

Parametri

pStoryboard
Puntatore a uno storyboard.

bDependOnKeyframes
Se FALSE, questo metodo aggiunge solo le transizioni che non dipendono dai fotogrammi chiave.

Valore restituito

TRUE se le transizioni sono state aggiunte correttamente.

Osservazioni:

Aggiunge transizioni correlate aggiunte con AddTransition (metodi di overload nelle classi derivate) allo storyboard.

CAnimationBaseObject::CAnimationBaseObject

Costruisce un oggetto animazione.

CAnimationBaseObject();

CAnimationBaseObject(
    UINT32 nGroupID,
    UINT32 nObjectID = (UINT32)-1,
    DWORD dwUserData = 0);

Parametri

nGroupID
Specifica l'ID gruppo.

nObjectID
Specifica l'ID oggetto.

dwUserData
Dati definiti dall'utente, che possono essere associati all'oggetto animazione e recuperati in un secondo momento in fase di esecuzione.

Osservazioni:

Costruisce un oggetto animazione e assegna l'ID oggetto predefinito (0) e l'ID gruppo (0).

CAnimationBaseObject::ClearTransitions

Rimuove tutte le transizioni correlate.

virtual void ClearTransitions(BOOL bAutodestroy);

Parametri

bAutodestroy
Specifica se eliminare automaticamente gli oggetti di transizione o semplicemente rimuoverli dall'elenco correlato.

Osservazioni:

Rimuove tutte le transizioni correlate e le elimina se bAutodestroy o m_bAutodestroyTransitions flag è TRUE. Le transizioni devono essere eliminate automaticamente solo se non vengono allocate nello stack. Se i flag precedenti sono FALSE, le transizioni vengono rimosse dall'elenco interno di transizioni correlate.

CAnimationBaseObject::ContainsVariable

Determina se un oggetto animazione contiene una determinata variabile di animazione.

virtual BOOL ContainsVariable(IUIAnimationVariable* pVariable);

Parametri

pVariable
Puntatore alla variabile di animazione.

Valore restituito

TRUE se la variabile di animazione è contenuta nell'oggetto animazione; in caso contrario FALSE.

Osservazioni:

Questo metodo può essere usato per determinare se una variabile di animazione specificata da pVariable è contenuta all'interno di un oggetto animazione. Un oggetto animazione, a seconda del tipo, può contenere diverse variabili di animazione. Ad esempio, CAnimationColor contiene tre variabili, una per ogni componente colore (rosso, verde e blu). Quando un valore della variabile di animazione è stato modificato, l'API animazione di Windows invia eventi ValueChanged o IntegerValueChanged (se abilitata) e il parametro di questo evento è un puntatore all'interfaccia IUIAnimationVariable della variabile di animazione. Questo metodo consente di ottenere un puntatore all'animazione da un puntatore a un oggetto COM contenuto.

CAnimationBaseObject::CreateTransitions

Crea transizioni associate a un oggetto animazione.

BOOL CreateTransitions();

Valore restituito

TRUE se le transizioni sono state create correttamente; in caso contrario FALSE.

Osservazioni:

Esegue un ciclo sull'elenco di variabili di animazione incapsulate in un oggetto animazione derivato e crea transizioni associate a ogni variabile di animazione.

CAnimationBaseObject::D etachFromController

Scollega un oggetto animazione dal controller di animazione padre.

void DetachFromController();

Osservazioni:

Questo metodo viene usato internamente.

CAnimationBaseObject::EnableIntegerValueChangedEvent

Configura il gestore eventi Integer Value Changed.

virtual void EnableIntegerValueChangedEvent(
    CAnimationController* pController,
    BOOL bEnable);

Parametri

pController
Puntatore a un controller padre.

bEnable
Specifica se abilitare o disabilitare l'evento Integer Value Changed.

Osservazioni:

Se il gestore eventi Integer Value Changed è abilitato, è possibile gestire questo evento nel metodo CAnimationController::OnAnimationIntegerValueChanged, che deve essere sottoposto a override in una classe derivata da CAnimationController. Questo metodo viene chiamato ogni volta che il valore intero dell'animazione è stato modificato.

CAnimationBaseObject::EnableValueChangedEvent

Configura il gestore eventi Value Changed.

virtual void EnableValueChangedEvent(
    CAnimationController* pController,
    BOOL bEnable);

Parametri

pController
Puntatore a un controller padre.

bEnable
Specifica se abilitare o disabilitare l'evento Value Changed.

Osservazioni:

Se il gestore eventi Value Changed è abilitato, è possibile gestire questo evento nel metodo CAnimationController::OnAnimationValueChanged, che deve essere sottoposto a override in una classe derivata da CAnimationController. Questo metodo viene chiamato ogni volta che il valore dell'animazione è stato modificato.

CAnimationBaseObject::GetAnimationVariableList

Raccoglie i puntatori alle variabili di animazione contenute.

virtual void GetAnimationVariableList(
    CList<CAnimationVariable*,
    CAnimationVariable*>& list) = 0;

Parametri

list
Elenco che deve essere compilato con variabili di animazione contenute in un oggetto animazione.

Osservazioni:

Questo metodo virtuale puro deve essere sottoposto a override in una classe derivata. Un oggetto animazione, a seconda del tipo, contiene una o più variabili di animazione. Ad esempio, CAnimationPoint contiene due variabili, rispettivamente per le coordinate X e Y. La classe base CAnimationBaseObject implementa alcuni metodi generici, che agiscono su un elenco di variabili di animazione: ApplyTransitions, ClearTransitions, EnableValueChangedEvent, EnableIntegerValueChangedEvent. Questi metodi chiamano GetAnimationVariableList, compilato in una classe derivata con variabili di animazione effettive contenute in un oggetto di animazione specifico, quindi scorrere l'elenco ed eseguire le azioni necessarie. Se crei un oggetto animazione personalizzato, devi aggiungere per elencare tutte le variabili di animazione contenute in tale oggetto.

CAnimationBaseObject::GetAutodestroyTransitions

Indica se la transizione correlata viene eliminata automaticamente.

BOOL GetAutodestroyTransitions() const;

Valore restituito

Se TRUE, le transizioni correlate vengono eliminate automaticamente; se FALSE, gli oggetti di transizione devono essere deallocati chiamando l'applicazione.

Osservazioni:

Per impostazione predefinita, questo flag è TRUE. Impostare questo flag solo se la transizione allocata nello stack e/o le transizioni devono essere deallocate dall'applicazione chiamante.

CAnimationBaseObject::GetGroupID

Restituisce l'ID gruppo corrente.

UINT32 GetGroupID() const;

Valore restituito

ID gruppo corrente.

Osservazioni:

Utilizzare questo metodo per recuperare l'ID gruppo. È 0 se l'ID gruppo non è stato impostato in modo esplicito nel costruttore o con SetID.

CAnimationBaseObject::GetObjectID

Restituisce l'ID oggetto corrente.

UINT32 GetObjectID() const;

Valore restituito

ID oggetto corrente.

Osservazioni:

Utilizzare questo metodo per recuperare l'ID oggetto. È 0 se l'ID oggetto non è stato impostato in modo esplicito nel costruttore o con SetID.

CAnimationBaseObject::GetUserData

Restituisce dati definiti dall'utente.

DWORD GetUserData() const;

Valore restituito

Valore di dati personalizzati.

Osservazioni:

Chiamare questo metodo per recuperare i dati personalizzati in fase di esecuzione. Il valore restituito sarà 0 se non è stato inizializzato in modo esplicito nel costruttore o con SetUserData.

CAnimationBaseObject::m_bAutodestroyTransitions

Specifica se le transizioni correlate devono essere eliminate automaticamente.

BOOL m_bAutodestroyTransitions;

CAnimationBaseObject::m_dwUserData

Archivia i dati definiti dall'utente.

DWORD m_dwUserData;

CAnimationBaseObject::m_nGroupID

Specifica l'ID gruppo dell'oggetto animazione.

UINT32 m_nGroupID;

CAnimationBaseObject::m_nObjectID

Specifica l'ID oggetto dell'oggetto animazione.

UINT32 m_nObjectID;

CAnimationBaseObject::m_pParentController

Puntatore al controller di animazione padre.

CAnimationController* m_pParentController;

CAnimationBaseObject::SetAutodestroyTransitions

Imposta un flag per eliminare automaticamente le transizioni.

void SetAutodestroyTransitions(BOOL bValue);

Parametri

bValue
Specifica il flag di eliminazione automatica.

Osservazioni:

Impostare questo flag solo se gli oggetti di transizione sono stati allocati usando l'operatore new. Se per qualche motivo gli oggetti di transizione vengono allocati nello stack, il flag di eliminazione automatica deve essere FALSE. Per impostazione predefinita, questo flag è TRUE.

CAnimationBaseObject::SetID

Imposta nuovi ID.

void SetID(
    UINT32 nObjectID,
    UINT32 nGroupID = 0);

Parametri

nObjectID
Specifica il nuovo ID oggetto.

nGroupID
Specifica il nuovo ID gruppo.

Osservazioni:

Consente di modificare l'ID oggetto e l'ID gruppo. Se il nuovo ID gruppo è diverso dall'ID corrente, un oggetto animazione viene spostato in un altro gruppo (se necessario verrà creato un nuovo gruppo).

CAnimationBaseObject::SetParentAnimationObjects

Stabilisce una relazione tra le variabili di animazione, contenute in un oggetto animazione e il relativo contenitore.

virtual void SetParentAnimationObjects();

Osservazioni:

Questo helper può essere usato per stabilire una relazione tra le variabili di animazione contenute in un oggetto animazione e il relativo contenitore. Esegue un ciclo sulle variabili di animazione e imposta un puntatore indietro su un oggetto animazione padre su ogni variabile di animazione. Nell'implementazione corrente la relazione effettiva viene stabilita in CAnimationBaseObject::ApplyTransitions, pertanto i back pointer non vengono impostati finché non si chiama CAnimationGroup::Animate. Conoscere la relazione può essere utile quando si elaborano gli eventi ed è necessario ottenere un oggetto animazione padre da CAnimationVariable. Usare CAnimationVariable::GetParentAnimationObject.

CAnimationBaseObject::SetUserData

Imposta i dati definiti dall'utente.

void SetUserData (DWORD dwUserData);

Parametri

dwUserData
Specifica i dati personalizzati.

Osservazioni:

Utilizzare questo metodo per associare dati personalizzati a un oggetto animazione. Questi dati possono essere recuperati in un secondo momento in fase di esecuzione da GetUserData.

Vedi anche

Classi