Classe CAnimationGroup
Implementa un gruppo di animazioni, che combina uno storyboard di animazione, oggetti di animazione e transizioni per definire un'animazione.
Sintassi
class CAnimationGroup;
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CAnimationGroup::CAnimationGroup | Costruisce un gruppo di animazioni. |
CAnimationGroup::~CAnimationGroup | Distruttore. Chiamato quando un gruppo di animazioni viene eliminato definitivamente. |
Metodi pubblici
Nome | Descrizione |
---|---|
CAnimationGroup::Animate | Aggiunge un'animazione a un gruppo. |
CAnimationGroup::ApplyTransitions | Applica transizioni agli oggetti animazione. |
CAnimationGroup::FindAnimationObject | Trova un oggetto animazione che contiene la variabile di animazione specificata. |
CAnimationGroup::GetGroupID | Restituisce GroupID. |
CAnimationGroup::RemoveKeyframes | Rimuove e, facoltativamente, elimina tutti i fotogrammi chiave appartenenti a un gruppo di animazioni. |
CAnimationGroup::RemoveTransitions | Rimuove le transizioni dagli oggetti di animazione che appartengono a un gruppo di animazioni. |
CAnimationGroup::Schedule | Pianifica un'animazione all'ora specificata. |
CAnimationGroup::SetAutodestroyTransitions | Indirizza tutti gli oggetti di animazione che appartengono a un gruppo eliminano automaticamente le transizioni. |
Metodi protetti
Nome | Descrizione |
---|---|
CAnimationGroup::AddKeyframes | Helper che aggiunge fotogrammi chiave a uno storyboard. |
CAnimationGroup::AddTransitions | Helper che aggiunge transizioni a uno storyboard. |
CAnimationGroup::CreateTransitions | Helper che crea oggetti di transizione COM. |
Membri dati pubblici
Nome | Descrizione |
---|---|
CAnimationGroup::m_bAutoclearTransitions | Specifica come cancellare le transizioni dagli oggetti di animazione che appartengono al gruppo. Se questo membro è TRUE, le transizioni vengono rimosse automaticamente quando è stata pianificata un'animazione. In caso contrario, è necessario rimuovere manualmente le transizioni. |
CAnimationGroup::m_bAutodestroyAnimationObjects | Specifica come eliminare definitivamente gli oggetti di animazione. Se questo parametro è TRUE, gli oggetti animazione verranno eliminati automaticamente quando il gruppo viene eliminato definitivamente. In caso contrario, gli oggetti di animazione devono essere eliminati manualmente. Il valore predefinito è FALSE. Impostare questo valore su TRUE solo se tutti gli oggetti di animazione appartenenti al gruppo vengono allocati dinamicamente con l'operatore new. |
CAnimationGroup::m_bAutodestroyKeyframes | Specifica come eliminare definitivamente i fotogrammi chiave. Se questo valore è TRUE, tutti i fotogrammi chiave vengono rimossi e eliminati definitivamente; in caso contrario, vengono rimossi solo dall'elenco. Il valore predefinito è TRUE. |
CAnimationGroup::m_lstAnimationObjects | Contiene un elenco di oggetti animazione. |
CAnimationGroup::m_lstKeyFrames | Contiene un elenco di fotogrammi chiave. |
CAnimationGroup::m_pStoryboard | Punta allo storyboard dell'animazione. Questo puntatore è valido solo dopo la chiamata su Animate. |
Membri dati protetti
Nome | Descrizione |
---|---|
CAnimationGroup::m_nGroupID | Identificatore univoco del gruppo di animazioni. |
CAnimationGroup::m_pParentController | Puntatore al controller di animazione a cui appartiene questo gruppo. |
Osservazioni:
I gruppi di animazioni vengono creati automaticamente dal controller di animazione (CAnimationController) quando si aggiungono oggetti animazione usando CAnimationController::AddAnimationObject. Un gruppo di animazioni viene identificato da GroupID, che in genere viene considerato come parametro per modificare i gruppi di animazioni. Il GroupID viene ricavato dal primo oggetto animazione aggiunto a un nuovo gruppo di animazioni. Uno storyboard di animazione incapsulato viene creato dopo aver chiamato CAnimationController::AnimateGroup ed è accessibile tramite m_pStoryboard membro pubblico.
Gerarchia di ereditarietà
CAnimationGroup
Requisiti
Intestazione: afxanimationcontroller.h
CAnimationGroup::~CAnimationGroup
Distruttore. Chiamato quando un gruppo di animazioni viene eliminato definitivamente.
~CAnimationGroup();
CAnimationGroup::AddKeyframes
Helper che aggiunge fotogrammi chiave a uno storyboard.
void AddKeyframes(IUIAnimationStoryboard* pStoryboard, BOOL bAddDeep);
Parametri
pStoryboard
Puntatore a un oggetto COM storyboard.
bAddDeep
Specifica se questo metodo deve essere aggiunto ai fotogrammi chiave dello storyboard che dipendono da altri fotogrammi chiave.
CAnimationGroup::AddTransitions
Helper che aggiunge transizioni a uno storyboard.
void AddTransitions(
IUIAnimationStoryboard* pStoryboard,
BOOL bDependOnKeyframes);
Parametri
pStoryboard
Puntatore a un oggetto COM storyboard.
bDependOnKeyframes
CAnimationGroup::Animate
Aggiunge un'animazione a un gruppo.
BOOL Animate(
IUIAnimationManager* pManager,
IUIAnimationTimer* pTimer,
BOOL bScheduleNow);
Parametri
pManager
pTimerbScheduleNow
Valore restituito
TRUE se il metodo ha esito positivo; in caso contrario FALSE.
Osservazioni:
Questo metodo crea uno storyboard interno, crea e applica transizioni e pianifica un'animazione se bScheduleNow è TRUE. Se bScheduleNow è FALSE, devi chiamare Schedule per avviare l'animazione all'ora specificata.
CAnimationGroup::ApplyTransitions
Applica transizioni agli oggetti animazione.
void ApplyTransitions();
Osservazioni:
Questo metodo ASSERTS in modalità di debug se lo storyboard non è stato creato. Crea prima tutte le transizioni, quindi aggiunge fotogrammi chiave "statici" (fotogrammi chiave che dipendono da offset), aggiunge transizioni che non dipendono da fotogrammi chiave, aggiunge fotogrammi chiave a seconda delle transizioni e di altri fotogrammi chiave e infine aggiunge transizioni che dipendono da fotogrammi chiave.
CAnimationGroup::CAnimationGroup
Costruisce un gruppo di animazioni.
CAnimationGroup(CAnimationController* pParentController, UINT32 nGroupID);
Parametri
pParentController
Puntatore al controller di animazione che crea un gruppo.
nGroupID
Specifica GroupID.
CAnimationGroup::CreateTransitions
Helper che crea oggetti di transizione COM.
BOOL CreateTransitions();
Valore restituito
TRUE è il metodo ha esito positivo; in caso contrario, FALSE.
CAnimationGroup::FindAnimationObject
Trova un oggetto animazione che contiene la variabile di animazione specificata.
CAnimationBaseObject* FindAnimationObject(IUIAnimationVariable* pVariable);
Parametri
pVariable
Puntatore alla variabile di animazione.
Valore restituito
Puntatore all'oggetto animazione o NULL se l'oggetto animazione non viene trovato.
CAnimationGroup::GetGroupID
Restituisce GroupID.
UINT32 GetGroupID() const;
Valore restituito
Identificatore di gruppo.
CAnimationGroup::m_bAutoclearTransitions
Specifica come cancellare le transizioni dagli oggetti di animazione che appartengono al gruppo. Se questo membro è TRUE, le transizioni vengono rimosse automaticamente quando è stata pianificata un'animazione. In caso contrario, è necessario rimuovere manualmente le transizioni.
BOOL m_bAutoclearTransitions;
CAnimationGroup::m_bAutodestroyAnimationObjects
Specifica come eliminare definitivamente gli oggetti di animazione. Se questo parametro è TRUE, gli oggetti animazione verranno eliminati automaticamente quando il gruppo viene eliminato definitivamente. In caso contrario, gli oggetti di animazione devono essere eliminati manualmente. Il valore predefinito è FALSE. Impostare questo valore su TRUE solo se tutti gli oggetti di animazione appartenenti al gruppo vengono allocati dinamicamente con l'operatore new.
BOOL m_bAutodestroyAnimationObjects;
CAnimationGroup::m_bAutodestroyKeyframes
Specifica come eliminare definitivamente i fotogrammi chiave. Se questo valore è TRUE, tutti i fotogrammi chiave vengono rimossi e eliminati definitivamente; in caso contrario, vengono rimossi solo dall'elenco. Il valore predefinito è TRUE.
BOOL m_bAutodestroyKeyframes;
CAnimationGroup::m_lstAnimationObjects
Contiene un elenco di oggetti animazione.
CObList m_lstAnimationObjects;
CAnimationGroup::m_lstKeyFrames
Contiene un elenco di fotogrammi chiave.
CObList m_lstKeyFrames;
CAnimationGroup::m_nGroupID
Identificatore univoco del gruppo di animazioni.
UINT32 m_nGroupID;
CAnimationGroup::m_pParentController
Puntatore al controller di animazione a cui appartiene questo gruppo.
CAnimationController* m_pParentController;
CAnimationGroup::m_pStoryboard
Punta allo storyboard dell'animazione. Questo puntatore è valido solo dopo la chiamata su Animate.
ATL::CComPtr<IUIAnimationStoryboard> m_pStoryboard;
CAnimationGroup::RemoveKeyframes
Rimuove e, facoltativamente, elimina tutti i fotogrammi chiave appartenenti a un gruppo di animazioni.
void RemoveKeyframes();
Osservazioni:
Se m_bAutodestroyKeyframes membro è TRUE, i fotogrammi chiave vengono rimossi e eliminati definitivamente. In caso contrario, i fotogrammi chiave vengono rimossi dall'elenco interno di fotogrammi chiave.
CAnimationGroup::RemoveTransitions
Rimuove le transizioni dagli oggetti di animazione che appartengono a un gruppo di animazioni.
void RemoveTransitions();
Osservazioni:
Se m_bAutoclearTransitions flag è impostato su TRUE, questo metodo esegue un ciclo su tutti gli oggetti animazione appartenenti al gruppo e chiama CAnimationObject::ClearTransitions(FALSE).
CAnimationGroup::Schedule
Pianifica un'animazione all'ora specificata.
BOOL Schedule(IUIAnimationTimer* pTimer, UI_ANIMATION_SECONDS time);
Parametri
pTimer
Puntatore al timer di animazione.
time
Specifica il tempo necessario per pianificare l'animazione.
Valore restituito
TRUE se il metodo ha esito positivo; FALSE se il metodo ha esito negativo o se Animate non è stato chiamato con bScheduleNow impostato su FALSE.
Osservazioni:
Chiamare questa funzione per pianificare un'animazione all'ora specificata. Per prima cosa devi chiamare Animate con bScheduleNow impostato su FALSE.
CAnimationGroup::SetAutodestroyTransitions
Indirizza tutti gli oggetti di animazione che appartengono a un gruppo eliminano automaticamente le transizioni.
void SetAutodestroyTransitions(BOOL bAutoDestroy = TRUE);
Parametri
bAutoDestroy
Specifica come eliminare definitivamente le transizioni.
Osservazioni:
Impostare questo valore su FALSE solo se si allocano transizioni nello stack. Il valore predefinito è TRUE, pertanto è consigliabile allocare oggetti di transizione usando l'operatore new.