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.

Vedi anche

Classi