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à
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.