Classe CAnimationController
Implementa il controller di animazione che fornisce un'interfaccia centrale per la creazione e la gestione delle animazioni.
Sintassi
class CAnimationController : public CObject;
Membri
Costruttori pubblici
Nome | Descrizione |
---|---|
CAnimationController::CAnimationController | Costruisce un controller di animazione. |
CAnimationController::~CAnimationController | Distruttore. Chiamato quando l'oggetto controller di animazione viene eliminato definitivamente. |
Metodi pubblici
Nome | Descrizione |
---|---|
CAnimationController::AddAnimationObject | Aggiunge un oggetto animazione a un gruppo appartenente al controller di animazione. |
CAnimationController::AddKeyframeToGroup | Aggiunge un fotogramma chiave al gruppo. |
CAnimationController::AnimateGroup | Prepara un gruppo per eseguire l'animazione e, facoltativamente, la pianifica. |
CAnimationController::CleanUpGroup | Con overload. Chiamato dal framework per pulire il gruppo quando è stata pianificata l'animazione. |
CAnimationController::CreateKeyframe | Con overload. Crea un fotogramma chiave che dipende dalla transizione e lo aggiunge al gruppo specificato. |
CAnimationController::EnableAnimationManagerEvent | Imposta o rilascia un gestore da chiamare quando lo stato di Gestione animazioni cambia. |
CAnimationController::EnableAnimationTimerEventHandler | Imposta o rilascia un gestore per gli eventi di intervallo e il gestore per gli aggiornamenti temporali. |
CAnimationController::EnablePriorityComparisonHandler | Imposta o rilascia il gestore di confronto delle priorità da chiamare per determinare se uno storyboard pianificato può essere annullato, concluso, tagliato o compresso. |
CAnimationController::EnableStoryboardEventHandler | Imposta o rilascia un gestore per lo stato dello storyboard e gli eventi di aggiornamento. |
CAnimationController::FindAnimationGroup | Con overload. Trova un gruppo di animazioni in base al relativo storyboard. |
CAnimationController::FindAnimationObject | Trova l'oggetto animazione contenente una variabile di animazione specificata. |
CAnimationController::GetKeyframeStoryboardStart | Restituisce un fotogramma chiave che identifica l'inizio dello storyboard. |
CAnimationController::GetUIAnimationManager | Fornisce l'accesso all'oggetto IUIAnimationManager incapsulato. |
CAnimationController::GetUIAnimationTimer | Fornisce l'accesso all'oggetto IUIAnimationTimer incapsulato. |
CAnimationController::GetUITransitionFactory | Puntatore all'interfaccia IUIAnimationTransitionFactory o NULL, se la creazione della libreria di transizione non è riuscita. |
CAnimationController::GetUITransitionLibrary | Fornisce l'accesso all'oggetto IUIAnimationTransitionLibrary incapsulato. |
CAnimationController::IsAnimationInProgress | Indica se almeno un gruppo sta riproducendo l'animazione. |
CAnimationController::IsValid | Indica se il controller di animazione è valido. |
CAnimationController::OnAnimationIntegerValueChanged | Chiamato dal framework quando il valore intero della variabile di animazione è stato modificato. |
CAnimationController::OnAnimationManagerStatusChanged | Chiamato dal framework in risposta all'evento StatusChanged da gestione animazioni. |
CAnimationController::OnAnimationTimerPostUpdate | Chiamato dal framework al termine di un aggiornamento dell'animazione. |
CAnimationController::OnAnimationTimerPreUpdate | Chiamato dal framework prima dell'inizio di un aggiornamento dell'animazione. |
CAnimationController::OnAnimationTimerRenderingTooSlow | Chiamato dal framework quando la frequenza dei fotogrammi di rendering per un'animazione scende al di sotto di una frequenza di fotogrammi minima desiderata. |
CAnimationController::OnAnimationValueChanged | Chiamato dal framework quando il valore della variabile di animazione è cambiato. |
CAnimationController::OnBeforeAnimationStart | Chiamato dal framework subito prima della pianificazione dell'animazione. |
CAnimationController::OnHasPriorityCancel | Chiamata eseguita dal framework per risolvere i conflitti di pianificazione. |
CAnimationController::OnHasPriorityCompress | Chiamata eseguita dal framework per risolvere i conflitti di pianificazione. |
CAnimationController::OnHasPriorityConclude | Chiamata eseguita dal framework per risolvere i conflitti di pianificazione. |
CAnimationController::OnHasPriorityTrim | Chiamata eseguita dal framework per risolvere i conflitti di pianificazione. |
CAnimationController::OnStoryboardStatusChanged | Chiamato dal framework quando lo stato dello storyboard è cambiato. |
CAnimationController::OnStoryboardUpdated | Chiamato dal framework quando lo storyboard è stato aggiornato. |
CAnimationController::RemoveAllAnimationGroups | Rimuove tutti i gruppi di animazioni dal controller di animazione. |
CAnimationController::RemoveAnimationGroup | Rimuove un gruppo di animazioni con ID specificato dal controller di animazione. |
CAnimationController::RemoveAnimationObject | Rimuovere un oggetto animazione dal controller di animazione. |
CAnimationController::RemoveTransitions | Rimuove le transizioni dagli oggetti di animazione che appartengono al gruppo specificato. |
CAnimationController::ScheduleGroup | Pianifica un'animazione. |
CAnimationController::SetRelatedWnd | Stabilisce una relazione tra il controller di animazione e una finestra. |
CAnimationController::UpdateAnimationManager | Indirizza la gestione animazioni per aggiornare i valori di tutte le variabili di animazione. |
Metodi protetti
Nome | Descrizione |
---|---|
CAnimationController::CleanUpGroup | Con overload. Helper che pulisce il gruppo. |
CAnimationController::OnAfterSchedule | Chiamato dal framework quando è stata pianificata un'animazione per il gruppo specificato. |
Membri dati protetti
Nome | Descrizione |
---|---|
CAnimationController::gkeyframeStoryboardStart | Fotogramma chiave che rappresenta l'inizio dello storyboard. |
CAnimationController::m_bIsValid | Specifica se un controller di animazione è valido o meno. Questo membro è impostato su FALSE se il sistema operativo corrente non supporta l'API animazione Di Windows. |
CAnimationController::m_lstAnimationGroups | Elenco di gruppi di animazioni che appartengono a questo controller di animazione. |
CAnimationController::m_pAnimationManager | Archivia un puntatore all'oggetto COM di Animation Manager. |
CAnimationController::m_pAnimationTimer | Archivia un puntatore all'oggetto COM Timer animazione. |
CAnimationController::m_pRelatedWnd | Puntatore a un oggetto CWnd correlato, che può essere ridisegnato automaticamente quando lo stato della gestione animazioni è stato modificato o si è verificato un evento di post-aggiornamento. Può essere NULL. |
CAnimationController::m_pTransitionFactory | Archivia un puntatore all'oggetto COM di Transition Factory. |
CAnimationController::m_pTransitionLibrary | Archivia un puntatore all'oggetto COM della libreria di transizione. |
Osservazioni:
La classe CAnimationController è la classe chiave che gestisce le animazioni. È possibile creare una o più istanze del controller di animazione in un'applicazione e, facoltativamente, connettere un'istanza del controller di animazione a un oggetto CWnd usando CAnimationController::SetRelatedWnd. Questa connessione è necessaria per inviare automaticamente WM_PAINT messaggi alla finestra correlata quando lo stato della gestione animazioni è stato modificato o il timer di animazione è stato aggiornato. Se non si abilita questa relazione, è necessario ridisegnare manualmente una finestra che visualizza un'animazione. A questo scopo, è possibile derivare una classe da CAnimationController ed eseguire l'override di OnAnimationManagerStatusChanged e/o OnAnimationTimerPostUpdate e invalidare una o più finestre quando necessario.
Gerarchia di ereditarietà
CAnimationController
Requisiti
Intestazione: afxanimationcontroller.h
CAnimationController::~CAnimationController
Distruttore. Chiamato quando l'oggetto controller di animazione viene eliminato definitivamente.
virtual ~CAnimationController(void);
CAnimationController::AddAnimationObject
Aggiunge un oggetto animazione a un gruppo appartenente al controller di animazione.
CAnimationGroup* AddAnimationObject(CAnimationBaseObject* pObject);
Parametri
pObject
Puntatore a un oggetto animazione.
Valore restituito
Puntatore a un gruppo di animazioni esistente o nuovo in cui è stato aggiunto pObject se la funzione ha esito positivo; NULL se pObject è già stato aggiunto a un gruppo appartenente a un altro controller di animazione.
Osservazioni:
Chiamare questo metodo per aggiungere un oggetto animazione al controller di animazione. Un oggetto verrà aggiunto a un gruppo in base al GroupID dell'oggetto (vedere CAnimationBaseObject::SetID). Il controller di animazione creerà un nuovo gruppo se è il primo oggetto aggiunto con l'ID group specificato. Un oggetto animazione può essere aggiunto a un solo controller di animazione. Se è necessario aggiungere un oggetto a un altro controller, chiamare prima RemoveAnimationObject. Se si chiama SetID con il nuovo GroupID per un oggetto già aggiunto a un gruppo, l'oggetto verrà rimosso dal gruppo precedente e aggiunto a un altro gruppo con ID specificato.
CAnimationController::AddKeyframeToGroup
Aggiunge un fotogramma chiave al gruppo.
BOOL AddKeyframeToGroup(
UINT32 nGroupID,
CBaseKeyFrame* pKeyframe);
Parametri
nGroupID
Specifica l'ID gruppo.
pKeyframe
Puntatore a un fotogramma chiave.
Valore restituito
TRUE se la funzione ha esito positivo; in caso contrario FALSE.
Osservazioni:
In genere non è necessario chiamare questo metodo, usare invece CAnimationController::CreateKeyframe, che crea e aggiunge automaticamente il fotogramma chiave creato a un gruppo.
CAnimationController::AnimateGroup
Prepara un gruppo per eseguire l'animazione e, facoltativamente, la pianifica.
BOOL AnimateGroup(
UINT32 nGroupID,
BOOL bScheduleNow = TRUE);
Parametri
nGroupID
Specifica GroupID.
bScheduleNow
Specifica se eseguire immediatamente l'animazione.
Valore restituito
TRUE se l'animazione è stata pianificata ed eseguita correttamente.
Osservazioni:
Questo metodo esegue il lavoro effettivo creando storyboard, aggiungendo variabili di animazione, applicando transizioni e impostando fotogrammi chiave. È possibile ritardare la pianificazione se si imposta bScheduleNow su FALSE. In questo caso il gruppo specificato conterrà uno storyboard configurato per l'animazione. A questo punto è possibile configurare eventi per gli storyboard e le variabili di animazione. Quando è effettivamente necessario eseguire la chiamata di animazione CAnimationController::ScheduleGroup.
CAnimationController::CAnimationController
Costruisce un controller di animazione.
CAnimationController(void);
CAnimationController::CleanUpGroup
Chiamato dal framework per pulire il gruppo quando è stata pianificata l'animazione.
void CleanUpGroup(UINT32 nGroupID);
void CleanUpGroup(CAnimationGroup* pGroup);
Parametri
nGroupID
Specifica GroupID.
pGroup
Puntatore al gruppo di animazioni da pulire.
Osservazioni:
Questo metodo rimuove tutte le transizioni e i fotogrammi chiave dal gruppo specificato, perché non sono rilevanti dopo la pianificazione di un'animazione.
CAnimationController::CreateKeyframe
Crea un fotogramma chiave che dipende dalla transizione e lo aggiunge al gruppo specificato.
CKeyFrame* CreateKeyframe(
UINT32 nGroupID,
CBaseTransition* pTransition);
CKeyFrame* CreateKeyframe(
UINT32 nGroupID,
CBaseKeyFrame* pKeyframe,
UI_ANIMATION_SECONDS offset = 0.0);
Parametri
nGroupID
Specifica l'ID gruppo per cui viene creato il fotogramma chiave.
pTransition
Puntatore alla transizione. Il fotogramma chiave verrà inserito nello storyboard dopo questa transizione.
pKeyframe
Puntatore al fotogramma chiave di base per questo fotogramma chiave.
offset
Offset in secondi dal fotogramma chiave di base specificato da pKeyframe.
Valore restituito
Puntatore al fotogramma chiave appena creato se la funzione riesce.
Osservazioni:
È possibile archiviare il puntatore restituito e basare gli altri fotogrammi chiave sul fotogramma chiave appena creato (vedere il secondo overload). Per avviare le transizioni di fotogrammi chiave, vedere CBaseTransition::SetKeyframes. Non è necessario eliminare i fotogrammi chiave creati in questo modo, poiché vengono eliminati automaticamente dai gruppi di animazioni. Prestare attenzione durante la creazione di fotogrammi chiave basati su altri fotogrammi chiave e transizioni ed evitare i riferimenti circolari.
CAnimationController::EnableAnimationManagerEvent
Imposta o rilascia un gestore da chiamare quando lo stato di Gestione animazioni cambia.
virtual BOOL EnableAnimationManagerEvent(BOOL bEnable = TRUE);
Parametri
bEnable
Specifica se impostare o rilasciare un gestore.
Valore restituito
TRUE se il gestore è stato impostato o rilasciato correttamente.
Osservazioni:
Quando un gestore è impostato (abilitato) l'animazione di Windows chiama OnAnimationManagerStatusChanged quando lo stato di gestione animazioni cambia.
CAnimationController::EnableAnimationTimerEventHandler
Imposta o rilascia un gestore per gli eventi di intervallo e il gestore per gli aggiornamenti temporali.
virtual BOOL EnableAnimationTimerEventHandler(
BOOL bEnable = TRUE,
UI_ANIMATION_IDLE_BEHAVIOR idleBehavior = UI_ANIMATION_IDLE_BEHAVIOR_DISABLE);
Parametri
bEnable
Specifica se impostare o rilasciare i gestori.
idleBehavior
Specifica il comportamento di inattività per il gestore di aggiornamento timer.
Valore restituito
TRUE se i gestori sono stati impostati o rilasciati correttamente; FALSE se questo metodo viene chiamato per una seconda volta senza rilasciare prima i gestori o se si verifica un altro errore.
Osservazioni:
Quando i gestori sono impostati (abilitati) l'API animazione di Windows chiama i metodi OnAnimationTimerPreUpdate, OnAnimationTimerPostUpdate, OnRenderingTooSlow. È necessario abilitare i timer di animazione per consentire gli storyboard degli storyboard dell'API animazione di Windows. In caso contrario, dovrai chiamare CAnimationController::UpdateAnimationManager per indirizzare la gestione animazioni ad aggiornare i valori di tutte le variabili di animazione.
CAnimationController::EnablePriorityComparisonHandler
Imposta o rilascia il gestore di confronto delle priorità da chiamare per determinare se uno storyboard pianificato può essere annullato, concluso, tagliato o compresso.
virtual BOOL EnablePriorityComparisonHandler(DWORD dwHandlerType);
Parametri
dwHandlerType
Combinazione di flag UI_ANIMATION_PHT_ (vedere le note), che specifica quali gestori impostare o rilasciare.
Valore restituito
TRUE se il gestore è stato impostato o rilasciato correttamente.
Osservazioni:
Quando un gestore è impostato (abilitato) l'animazione di Windows chiama i metodi virtuali seguenti a seconda di dwHandlerType: OnHasPriorityCancel, OnHasPriorityConclude, OnHasPriorityTrim, OnHasPriorityCompress. dwHandler può essere una combinazione dei flag seguenti: UI_ANIMATION_PHT_NONE - Rilasciare tutti i gestori UI_ANIMATION_PHT_CANCEL - impostare Annulla UI_ANIMATION_PHT_CONCLUDE del gestore di confronto - impostare Termina gestore di confronto UI_ANIMATION_PHT_COMPRESS - impostare Comprimi gestore di confronto UI_ANIMATION_PHT_TRIM - impostare Trim comparison handler UI_ANIMATION_PHT_CANCEL_REMOVE - remove Cancel comparison handler UI_ANIMATION_PHT_CONCLUDE_REMOVE - remove Conclude comparison handler UI_ANIMATION_PHT_COMPRESS_REMOVE - remove Compress comparison handler UI_ANIMATION_PHT_TRIM_REMOVE - remove Trim comparison handler
CAnimationController::EnableStoryboardEventHandler
Imposta o rilascia un gestore per lo stato dello storyboard e gli eventi di aggiornamento.
virtual BOOL EnableStoryboardEventHandler(
UINT32 nGroupID,
BOOL bEnable = TRUE);
Parametri
nGroupID
Specifica l'ID gruppo.
bEnable
Specifica se impostare o rilasciare un gestore.
Valore restituito
TRUE se il gestore è stato impostato o rilasciato correttamente; FALSE se il gruppo di animazioni specificato viene trovato o l'animazione per il gruppo specificato non è stata avviata e il relativo storyboard interno è NULL.
Osservazioni:
Quando un gestore viene impostato (abilitato) l'API animazione Windows chiama i metodi virtuali OnStoryboardStatusChanges e OnStoryboardUpdated. Un gestore deve essere impostato dopo che CAnimationController::Animate è stato chiamato per il gruppo di animazioni specificato, perché crea un oggetto IUIAnimationStoryboard incapsulato.
CAnimationController::FindAnimationGroup
Trova un gruppo di animazioni in base al relativo ID gruppo.
CAnimationGroup* FindAnimationGroup(UINT32 nGroupID);
CAnimationGroup* FindAnimationGroup(IUIAnimationStoryboard* pStoryboard);
Parametri
nGroupID
Specifica un GroupID.
pStoryboard
Puntatore a uno storyboard.
Valore restituito
Puntatore al gruppo di animazioni o NULL se il gruppo con ID specificato non viene trovato.
Osservazioni:
Usare questo metodo per trovare un gruppo di animazioni in fase di esecuzione. Un gruppo viene creato e aggiunto all'elenco interno dei gruppi di animazioni quando viene aggiunto un primo oggetto di animazione con un id groupid specifico al controller di animazione.
CAnimationController::FindAnimationObject
Trova l'oggetto animazione contenente una variabile di animazione specificata.
BOOL FindAnimationObject(
IUIAnimationVariable* pVariable,
CAnimationBaseObject** ppObject,
CAnimationGroup** ppGroup);
Parametri
pVariable
Puntatore alla variabile di animazione.
ppObject
Output. Contiene un puntatore all'oggetto animazione o NULL.
ppGroup
Output. Contiene un puntatore al gruppo di animazioni che contiene l'oggetto animazione o NULL.
Valore restituito
TRUE se l'oggetto è stato trovato; in caso contrario FALSE.
Osservazioni:
Chiamato dai gestori eventi quando è necessario trovare un oggetto di animazione dalla variabile di animazione in ingresso.
CAnimationController::gkeyframeStoryboardStart
Fotogramma chiave che rappresenta l'inizio dello storyboard.
static CBaseKeyFrame gkeyframeStoryboardStart;
CAnimationController::GetKeyframeStoryboardStart
Restituisce un fotogramma chiave che identifica l'inizio dello storyboard.
static CBaseKeyFrame* GetKeyframeStoryboardStart();
Valore restituito
Puntatore al fotogramma chiave di base, che identifica l'inizio dello storyboard.
Osservazioni:
Ottenere questo fotogramma chiave per basare qualsiasi altro fotogramma chiave o transizione nel momento in cui viene avviato uno storyboard.
CAnimationController::GetUIAnimationManager
Fornisce l'accesso all'oggetto IUIAnimationManager incapsulato.
IUIAnimationManager* GetUIAnimationManager();
Valore restituito
Puntatore all'interfaccia IUIAnimationManager o NULL, se la creazione di gestione animazioni non è riuscita.
Osservazioni:
Se il sistema operativo corrente non supporta l'API animazione Windows, questo metodo restituisce NULL e dopo tutte le chiamate successive in CAnimationController::IsValid restituiscono FALSE. Potrebbe essere necessario accedere a IUIAnimationManager per chiamare i relativi metodi di interfaccia, che non sono inclusi nel wrapped dal controller di animazione.
CAnimationController::GetUIAnimationTimer
Fornisce l'accesso all'oggetto IUIAnimationTimer incapsulato.
IUIAnimationTimer* GetUIAnimationTimer();
Valore restituito
Puntatore all'interfaccia IUIAnimationTimer o NULL, se la creazione del timer di animazione non è riuscita.
Osservazioni:
Se il sistema operativo corrente non supporta l'API animazione Windows, questo metodo restituisce NULL e dopo tutte le chiamate successive in CAnimationController::IsValid restituiscono FALSE.
CAnimationController::GetUITransitionFactory
Puntatore all'interfaccia IUIAnimationTransitionFactory o NULL, se la creazione della libreria di transizione non è riuscita.
IUIAnimationTransitionFactory* GetUITransitionFactory();
Valore restituito
Puntatore a IUIAnimationTransitionFactory o NULL, se la creazione della factory di transizione non è riuscita.
Osservazioni:
Se il sistema operativo corrente non supporta l'API animazione Windows, questo metodo restituisce NULL e dopo tutte le chiamate successive in CAnimationController::IsValid restituiscono FALSE.
CAnimationController::GetUITransitionLibrary
Fornisce l'accesso all'oggetto IUIAnimationTransitionLibrary incapsulato.
IUIAnimationTransitionLibrary* GetUITransitionLibrary();
Valore restituito
Puntatore all'interfaccia IUIAnimationTransitionLibrary o NULL, se la creazione della libreria di transizione non è riuscita.
Osservazioni:
Se il sistema operativo corrente non supporta l'API animazione Windows, questo metodo restituisce NULL e dopo tutte le chiamate successive in CAnimationController::IsValid restituiscono FALSE.
CAnimationController::IsAnimationInProgress
Indica se almeno un gruppo sta riproducendo l'animazione.
virtual BOOL IsAnimationInProgress();
Valore restituito
TRUE se è in corso un'animazione per questo controller di animazione; in caso contrario FALSE.
Osservazioni:
Controlla lo stato della gestione animazioni e restituisce TRUE se lo stato è UI_ANIMATION_MANAGER_BUSY.
CAnimationController::IsValid
Indica se il controller di animazione è valido.
BOOL IsValid() const;
Valore restituito
TRUE se il controller di animazione è valido; in caso contrario FALSE.
Osservazioni:
Questo metodo restituisce FALSE solo se l'API animazione di Windows non è supportata nel sistema operativo corrente e la creazione di gestione animazioni non è riuscita perché non è registrata. È necessario chiamare GetUIAnimationManager almeno una volta dopo l'inizializzazione delle librerie COM per causare l'impostazione di questo flag.
CAnimationController::m_bIsValid
Specifica se un controller di animazione è valido o meno. Questo membro è impostato su FALSE se il sistema operativo corrente non supporta l'API animazione Di Windows.
BOOL m_bIsValid;
CAnimationController::m_lstAnimationGroups
Elenco di gruppi di animazioni che appartengono a questo controller di animazione.
CList<CAnimationGroup*, CAnimationGroup*> m_lstAnimationGroups;
CAnimationController::m_pAnimationManager
Archivia un puntatore all'oggetto COM di Animation Manager.
ATL::CComPtr<IUIAnimationManager> m_pAnimationManager;
CAnimationController::m_pAnimationTimer
Archivia un puntatore all'oggetto COM Timer animazione.
ATL::CComPtr<IUIAnimationTimer> m_pAnimationTimer;
CAnimationController::m_pRelatedWnd
Puntatore a un oggetto CWnd correlato, che può essere ridisegnato automaticamente quando lo stato della gestione animazioni è stato modificato o si è verificato un evento di post-aggiornamento. Può essere NULL.
CWnd* m_pRelatedWnd;
CAnimationController::m_pTransitionFactory
Archivia un puntatore all'oggetto COM di Transition Factory.
ATL::CComPtr<IUIAnimationTransitionFactory> m_pTransitionFactory;
CAnimationController::m_pTransitionLibrary
Archivia un puntatore all'oggetto COM della libreria di transizione.
ATL::CComPtr<IUIAnimationTransitionLibrary> m_pTransitionLibrary;
CAnimationController::OnAfterSchedule
Chiamato dal framework quando è stata pianificata un'animazione per il gruppo specificato.
virtual void OnAfterSchedule(CAnimationGroup* pGroup);
Parametri
pGroup
Puntatore a un gruppo di animazioni, pianificato.
Osservazioni:
L'implementazione predefinita rimuove i fotogrammi chiave dal gruppo specificato e le transizioni dalle variabili di animazione appartenenti al gruppo specificato. Può essere sottoposto a override in una classe derivata per eseguire eventuali azioni aggiuntive al momento della pianificazione dell'animazione.
CAnimationController::OnAnimationIntegerValueChanged
Chiamato dal framework quando il valore intero della variabile di animazione è stato modificato.
virtual void OnAnimationIntegerValueChanged(
CAnimationGroup* pGroup,
CAnimationBaseObject* pObject,
IUIAnimationVariable* variable,
INT32 newValue,
INT32 prevValue);
Parametri
pGroup
Puntatore a un gruppo di animazioni che contiene un oggetto animazione il cui valore è stato modificato.
pObject
Puntatore a un oggetto animazione contenente una variabile di animazione il cui valore è stato modificato.
variable
Puntatore a una variabile di animazione.
newValue
Specifica un nuovo valore.
prevValue
Specifica il valore precedente.
Osservazioni:
Questo metodo viene chiamato se si abilitano gli eventi delle variabili di animazione con EnableIntegerValueChangedEvent chiamato per una variabile di animazione o un oggetto animazione specifico. Può essere sottoposto a override in una classe derivata per eseguire azioni specifiche dell'applicazione.
CAnimationController::OnAnimationManagerStatusChanged
Chiamato dal framework in risposta all'evento StatusChanged da gestione animazioni.
virtual void OnAnimationManagerStatusChanged(
UI_ANIMATION_MANAGER_STATUS newStatus,
UI_ANIMATION_MANAGER_STATUS previousStatus);
Parametri
newStatus
Nuovo stato di gestione animazioni.
previousStatus
Stato precedente della gestione animazioni.
Osservazioni:
Questo metodo viene chiamato se si abilitano gli eventi di gestione animazioni con EnableAnimationManagerEvent. Può essere sottoposto a override in una classe derivata per eseguire azioni specifiche dell'applicazione. L'implementazione predefinita aggiorna una finestra correlata se è stata impostata con SetRelatedWnd.
CAnimationController::OnAnimationTimerPostUpdate
Chiamato dal framework al termine di un aggiornamento dell'animazione.
virtual void OnAnimationTimerPostUpdate();
Osservazioni:
Questo metodo viene chiamato se si abilitano i gestori eventi timer usando EnableAnimationTimerEventHandler. Può essere sottoposto a override in una classe derivata per eseguire azioni specifiche dell'applicazione.
CAnimationController::OnAnimationTimerPreUpdate
Chiamato dal framework prima dell'inizio di un aggiornamento dell'animazione.
virtual void OnAnimationTimerPreUpdate();
Osservazioni:
Questo metodo viene chiamato se si abilitano i gestori eventi timer usando EnableAnimationTimerEventHandler. Può essere sottoposto a override in una classe derivata per eseguire azioni specifiche dell'applicazione.
CAnimationController::OnAnimationTimerRenderingTooSlow
Chiamato dal framework quando la frequenza dei fotogrammi di rendering per un'animazione scende al di sotto di una frequenza di fotogrammi minima desiderata.
virtual void OnAnimationTimerRenderingTooSlow(UINT32 fps);
Parametri
fps
Frequenza dei fotogrammi corrente in fotogrammi al secondo.
Osservazioni:
Questo metodo viene chiamato se si abilitano i gestori eventi timer usando EnableAnimationTimerEventHandler. Può essere sottoposto a override in una classe derivata per eseguire azioni specifiche dell'applicazione. La frequenza dei fotogrammi minima desiderata viene specificata chiamando IUIAnimationTimer::SetFrameRateThreshold.
CAnimationController::OnAnimationValueChanged
Chiamato dal framework quando il valore della variabile di animazione è cambiato.
virtual void OnAnimationValueChanged(
CAnimationGroup* pGroup,
CAnimationBaseObject* pObject,
IUIAnimationVariable* variable,
DOUBLE newValue,
DOUBLE prevValue);
Parametri
pGroup
Puntatore a un gruppo di animazioni che contiene un oggetto animazione il cui valore è stato modificato.
pObject
Puntatore a un oggetto animazione contenente una variabile di animazione il cui valore è stato modificato.
variable
Puntatore a una variabile di animazione.
newValue
Specifica un nuovo valore.
prevValue
Specifica il valore precedente.
Osservazioni:
Questo metodo viene chiamato se si abilitano gli eventi delle variabili di animazione con EnableValueChangedEvent chiamato per una variabile di animazione o un oggetto animazione specifico. Può essere sottoposto a override in una classe derivata per eseguire azioni specifiche dell'applicazione.
CAnimationController::OnBeforeAnimationStart
Chiamato dal framework subito prima della pianificazione dell'animazione.
virtual void OnBeforeAnimationStart(CAnimationGroup* pGroup);
Parametri
pGroup
Puntatore a un gruppo di animazioni la cui animazione sta per iniziare.
Osservazioni:
Questa chiamata viene instradata a CWnd correlato e può essere sottoposta a override in una classe derivata per eseguire eventuali azioni aggiuntive prima dell'avvio dell'animazione per il gruppo specificato.
CAnimationController::OnHasPriorityCancel
Chiamata eseguita dal framework per risolvere i conflitti di pianificazione.
virtual BOOL OnHasPriorityCancel(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
Parametri
pGroupScheduled
Il gruppo cui appartiene lo storyboard attualmente pianificato.
pGroupNew
Il gruppo cui appartiene il nuovo storyboard la cui pianificazione è in conflitto con lo storyboard pianificato di proprietà di pGroupScheduled.
priorityEffect
Potenziale effetto su pGroupNew se pGroupScheduled dispone di una priorità più alta.
Valore restituito
Deve restituire TRUE se lo storyboard di proprietà di pGroupNew è prioritario. Deve restituire FALSE se lo storyboard di proprietà di pGroupScheduled è prioritario.
Osservazioni:
Questo metodo viene chiamato se si abilitano eventi di confronto della priorità usando CAnimationController:: EnablePriorityComparisonHandler e si specifica UI_ANIMATION_PHT_CANCEL. Può essere sottoposto a override in una classe derivata per eseguire azioni specifiche dell'applicazione. Per altre informazioni sulla gestione dei conflitti, vedere la documentazione dell'API animazione di Windows.
CAnimationController::OnHasPriorityCompress
Chiamata eseguita dal framework per risolvere i conflitti di pianificazione.
virtual BOOL OnHasPriorityCompress(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
Parametri
pGroupScheduled
Il gruppo cui appartiene lo storyboard attualmente pianificato.
pGroupNew
Il gruppo cui appartiene il nuovo storyboard la cui pianificazione è in conflitto con lo storyboard pianificato di proprietà di pGroupScheduled.
priorityEffect
Potenziale effetto su pGroupNew se pGroupScheduled dispone di una priorità più alta.
Valore restituito
Deve restituire TRUE se lo storyboard di proprietà di pGroupNew è prioritario. Deve restituire FALSE se lo storyboard di proprietà di pGroupScheduled è prioritario.
Osservazioni:
Questo metodo viene chiamato se si abilitano eventi di confronto della priorità usando CAnimationController:: EnablePriorityComparisonHandler e si specifica UI_ANIMATION_PHT_COMPRESS. Può essere sottoposto a override in una classe derivata per eseguire azioni specifiche dell'applicazione. Per altre informazioni sulla gestione dei conflitti, vedere la documentazione dell'API animazione di Windows.
CAnimationController::OnHasPriorityConclude
Chiamata eseguita dal framework per risolvere i conflitti di pianificazione.
virtual BOOL OnHasPriorityConclude(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
Parametri
pGroupScheduled
Il gruppo cui appartiene lo storyboard attualmente pianificato.
pGroupNew
Il gruppo cui appartiene il nuovo storyboard la cui pianificazione è in conflitto con lo storyboard pianificato di proprietà di pGroupScheduled.
priorityEffect
Potenziale effetto su pGroupNew se pGroupScheduled dispone di una priorità più alta.
Valore restituito
Deve restituire TRUE se lo storyboard di proprietà di pGroupNew è prioritario. Deve restituire FALSE se lo storyboard di proprietà di pGroupScheduled è prioritario.
Osservazioni:
Questo metodo viene chiamato se si abilitano eventi di confronto della priorità usando CAnimationController:: EnablePriorityComparisonHandler e si specifica UI_ANIMATION_PHT_CONCLUDE. Può essere sottoposto a override in una classe derivata per eseguire azioni specifiche dell'applicazione. Per altre informazioni sulla gestione dei conflitti, vedere la documentazione dell'API animazione di Windows.
CAnimationController::OnHasPriorityTrim
Chiamata eseguita dal framework per risolvere i conflitti di pianificazione.
virtual BOOL OnHasPriorityTrim(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
Parametri
pGroupScheduled
Il gruppo cui appartiene lo storyboard attualmente pianificato.
pGroupNew
Il gruppo cui appartiene il nuovo storyboard la cui pianificazione è in conflitto con lo storyboard pianificato di proprietà di pGroupScheduled.
priorityEffect
Potenziale effetto su pGroupNew se pGroupScheduled dispone di una priorità più alta.
Valore restituito
Deve restituire TRUE se lo storyboard di proprietà di pGroupNew è prioritario. Deve restituire FALSE se lo storyboard di proprietà di pGroupScheduled è prioritario.
Osservazioni:
Questo metodo viene chiamato se si abilitano eventi di confronto della priorità usando CAnimationController:: EnablePriorityComparisonHandler e si specifica UI_ANIMATION_PHT_TRIM. Può essere sottoposto a override in una classe derivata per eseguire azioni specifiche dell'applicazione. Per altre informazioni sulla gestione dei conflitti, vedere la documentazione dell'API animazione di Windows.
CAnimationController::OnStoryboardStatusChanged
Chiamato dal framework quando lo stato dello storyboard è cambiato.
virtual void OnStoryboardStatusChanged(
CAnimationGroup* pGroup,
UI_ANIMATION_STORYBOARD_STATUS newStatus,
UI_ANIMATION_STORYBOARD_STATUS previousStatus);
Parametri
pGroup
Puntatore a un gruppo di animazioni proprietario dello storyboard di cui è stato modificato lo stato.
newStatus
Specifica il nuovo stato.
previousStatus
Specifica lo stato precedente.
Osservazioni:
Questo metodo viene chiamato se si abilitano gli eventi storyboard usando CAnimationController::EnableStoryboardEventHandler. Può essere sottoposto a override in una classe derivata per eseguire azioni specifiche dell'applicazione.
CAnimationController::OnStoryboardUpdated
Chiamato dal framework quando lo storyboard è stato aggiornato.
virtual void OnStoryboardUpdated(CAnimationGroup* pGroup);
Parametri
pGroup
Puntatore a un gruppo proprietario dello storyboard.
Osservazioni:
Questo metodo viene chiamato se si abilitano gli eventi storyboard usando CAnimationController::EnableStoryboardEventHandler. Può essere sottoposto a override in una classe derivata per eseguire azioni specifiche dell'applicazione.
CAnimationController::RemoveAllAnimationGroups
Rimuove tutti i gruppi di animazioni dal controller di animazione.
void RemoveAllAnimationGroups();
Osservazioni:
Tutti i gruppi verranno eliminati, il puntatore, se archiviato a livello di applicazione, deve essere invalidato. Se CAnimationGroup::m_bAutodestroyAnimationObjects per un gruppo eliminato è TRUE, verranno eliminati tutti gli oggetti animazione appartenenti a tale gruppo; in caso contrario, i relativi riferimenti al controller di animazione padre verranno impostati su NULL e possono essere aggiunti a un altro controller.
CAnimationController::RemoveAnimationGroup
Rimuove un gruppo di animazioni con ID specificato dal controller di animazione.
void RemoveAnimationGroup(UINT32 nGroupID);
Parametri
nGroupID
Specifica l'ID del gruppo di animazioni.
Osservazioni:
Questo metodo rimuove un gruppo di animazioni dall'elenco interno di gruppi e lo elimina, pertanto, se è stato archiviato un puntatore a tale gruppo di animazione, deve essere invalidato. Se CAnimationGroup::m_bAutodestroyAnimationObjects è TRUE, tutti gli oggetti animazione che appartengono a tale gruppo verranno eliminati; in caso contrario, i relativi riferimenti al controller di animazione padre verranno impostati su NULL e possono essere aggiunti a un altro controller.
CAnimationController::RemoveAnimationObject
Rimuovere un oggetto animazione dal controller di animazione.
void RemoveAnimationObject(
CAnimationBaseObject* pObject,
BOOL bNoDelete = FALSE);
Parametri
pObject
Puntatore a un oggetto animazione.
bNoDelete
Se questo parametro è TRUE, l'oggetto non verrà eliminato al momento della rimozione.
Osservazioni:
Rimuove un oggetto animazione dal controller di animazione e dal gruppo di animazioni. Chiamare questa funzione se un particolare oggetto non deve più essere animato o se è necessario spostare l'oggetto in un altro controller di animazione. Nell'ultimo caso bNoDelete deve essere TRUE.
CAnimationController::RemoveTransitions
Rimuove le transizioni dagli oggetti di animazione che appartengono al gruppo specificato.
void RemoveTransitions(UINT32 nGroupID);
Parametri
nGroupID
Specifica l'ID gruppo.
Osservazioni:
Il gruppo esegue un ciclo sugli oggetti di animazione e chiama ClearTransitions(FALSE) per ogni oggetto animazione. Questo metodo viene chiamato dal framework dopo la pianificazione dell'animazione.
CAnimationController::ScheduleGroup
Pianifica un'animazione.
BOOL ScheduleGroup(
UINT32 nGroupID,
UI_ANIMATION_SECONDS time = 0.0);
Parametri
nGroupID
Specifica l'ID gruppo di animazioni da pianificare.
time
Specifica l'ora di pianificazione.
Valore restituito
TRUE se l'animazione è stata pianificata correttamente. FALSE se lo storyboard non è stato creato o si verifica un altro errore.
Osservazioni:
È necessario chiamare AnimateGroup con il parametro bScheduleNow impostato su FALSE prima di ScheduleGroup. È possibile specificare l'ora di animazione desiderata ottenuta da IUIAnimationTimer::GetTime. Se il parametro time è 0,0, l'animazione viene pianificata per l'ora corrente.
CAnimationController::SetRelatedWnd
Stabilisce una relazione tra il controller di animazione e una finestra.
void SetRelatedWnd(CWnd* pWnd);
Parametri
pWnd
Puntatore all'oggetto finestra da impostare.
Osservazioni:
Se è impostato un oggetto CWnd correlato, il controller di animazione può aggiornarlo automaticamente (inviare WM_PAINT messaggio) quando si è verificato lo stato della gestione animazioni o l'evento di post aggiornamento del timer.
CAnimationController::UpdateAnimationManager
Indirizza la gestione animazioni per aggiornare i valori di tutte le variabili di animazione.
virtual void UpdateAnimationManager();
Osservazioni:
La chiamata a questo metodo fa avanzare la gestione animazioni all'ora corrente, modificando gli stati degli storyboard in base alle esigenze e aggiornando eventuali variabili di animazione in base ai valori interpolati appropriati. Internamente questo metodo chiama IUIAnimationTimer::GetTime(timeNow) e IUIAnimationManager::Update(timeNow). Eseguire l'override di questo metodo in una classe derivata per personalizzare questo comportamento.