Condividi tramite


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à

CObject

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.

Vedi anche

Classi