Partilhar via


Classe CAnimationController

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Implementa o controlador de animação, que fornece uma interface central para criar e gerir animações.

Sintaxe

class CAnimationController : public CObject;

Membros

Construtores Públicos

Nome Description
CAnimationController::CAnimationController Constrói um controlador de animação.
CAnimationController::~CAnimationController O destruidor. Chamada quando o objeto do controlador de animação está a ser destruído.

Métodos Públicos

Nome Description
CAnimationController::AddAnimationObject Adiciona um objeto de animação a um grupo que pertence ao controlador de animação.
CAnimationController::AddKeyframeToGroup Adiciona um keyframe para o grupo.
CAnimationController::AnimateGroup Prepara um grupo para executar animação e, opcionalmente, agenda-a.
CAnimationController::CleanUpGroup Sobrecarregado. Chamado pelo framework para limpar o grupo quando a animação está agendada.
CAnimationController::CreateKeyframe Sobrecarregado. Cria um keyframe que depende da transição e adiciona-o ao grupo especificado.
CAnimationController::EnableAnimationManagerEvent Define ou liberta um handler para chamar quando o estado do gestor de animação muda.
CAnimationController::EnableAnimationTimerEventHandler Define ou liberta um handler para eventos de temporização e um handler para atualizações de timings.
CAnimationController::EnablePriorityComparisonHandler Define ou liberta o handler de comparação de prioridades para chamar e determinar se um storyboard agendado pode ser cancelado, concluído, cortado ou comprimido.
CAnimationController::EnableStoryboardEventHandler Define ou liberta um handler para o estado do storyboard e atualizações de eventos.
CAnimationController::FindAnimationGroup Sobrecarregado. Encontra um grupo de animação pelo seu storyboard.
CAnimationController::FindAnimationObject Encontra um objeto de animação contendo uma variável de animação especificada.
CAnimationController::GetKeyframeStoryboard Start Devolve um keyframe que identifica o início do storyboard.
CAnimationController::GetUIAnimationManager Fornece acesso ao objeto IUIAnimationManager encapsulado.
CAnimationController::GetUIAnimationTimer Fornece acesso ao objeto IUIAnimationTimer encapsulado.
CAnimationController::GetUITransitionFactory Um ponteiro para a interface IUIAnimationTransitionFactory ou NULL, caso a criação da biblioteca de transição falhasse.
CAnimationController::GetUITransitionLibrary Fornece acesso ao objeto IUIAnimationTransitionLibrary encapsulado.
CAnimationController::IsAnimationInProgress Indica se pelo menos um grupo está a jogar animação.
CAnimationController::IsValid Indica se o controlador de animação é válido.
CAnimationController::OnAnimationIntegerValueChanged Chamado pelo framework quando o valor inteiro da variável de animação mudou.
CAnimationController::OnAnimationManagerStatusAlterado Chamado pelo framework em resposta ao evento StatusChanged do gestor de animações.
CAnimationController::OnAnimationTimerPostUpdate É chamado pelo framework depois de terminar uma atualização de animação.
CAnimationController::OnAnimationTimerPreUpdate É chamado pelo framework antes de começar uma atualização de animação.
CAnimationController::OnAnimationTimeTimeRRenderingTooSlow Chamada pelo framework quando a taxa de fotogramas de renderização de uma animação cai abaixo de uma taxa mínima desejável.
CAnimationController::OnAnimationValueChanged Chamada pelo framework quando o valor da variável de animação mudou.
CAnimationController::OnBeforeAnimationStart Chamado pela framework mesmo antes da animação ser agendada.
CAnimationController::OnHasPriorityCancel Chamado pelo framework para resolver conflitos de agendamento.
CAnimationController::OnHasPriorityCompress Chamado pelo framework para resolver conflitos de agendamento.
CAnimationController::OnHasPriorityConclude Chamado pelo framework para resolver conflitos de agendamento.
CAnimationController::OnHasPriorityTrim Chamado pelo framework para resolver conflitos de agendamento.
ControladorDeCAnimação::EmEstadoStoryboard Alterado É chamado pelo framework quando o estado do storyboard mudou.
CAnimationController::OnStoryboardAtualizado É chamado pelo framework quando o storyboard é atualizado.
CAnimationController::RemoveAllAnimationGroups Remove todos os grupos de animação do controlador de animação.
CAnimationController::RemoveAnimationGroup Remove um grupo de animação com ID especificado do controlador de animação.
CAnimationController::RemoveAnimationObject Remover um objeto de animação do controlador de animação.
CAnimationController::RemoveTransitions Remove transições de objetos de animação que pertencem ao grupo especificado.
CAnimationController::ScheduleGroup Agenda uma animação.
CAnimationController::SetRelatedWnd Estabelece uma relação entre o controlador de animação e uma janela.
CAnimationController::UpdateAnimationManager Orienta o gestor de animações a atualizar os valores de todas as variáveis de animação.

Métodos Protegidos

Nome Description
CAnimationController::CleanUpGroup Sobrecarregado. Um ajudante que limpa o grupo.
CAnimationController::OnAfterSchedule Chamada pelo framework quando uma animação para o grupo especificado acaba de ser agendada.

Membros de Dados Protegidos

Nome Description
CAnimationController::gkeyframeStoryboard Start Um keyframe que representa o início do storyboard.
CAnimationController::m_bIsValid Especifica se um controlador de animação é válido ou não. Este membro está definido para FALSE se o sistema operativo atual não suportar a API de animação do Windows.
CAnimationController::m_lstAnimationGroups Uma lista dos grupos de animação que pertencem a este controlador de animação.
CAnimationController::m_pAnimationManager Armazena um ponteiro para o objeto COM do Animation Manager.
CAnimationController::m_pAnimationTimer Armazena um apontador para o objeto COM do Temporizador de Animação.
CAnimationController::m_pRelatedWnd Um apontador para um objeto CWnd relacionado, que pode ser redesenhado automaticamente quando o estado do gestor de animações mudou, ou ocorre um evento pós-atualização. Pode ser NULL.
CAnimationController::m_pTransitionFactory Armazena um apontador para o objeto COM do Transition Factory.
CAnimationController::m_pTransitionLibrary Armazena um ponteiro para o objeto COM da Biblioteca de Transição.

Observações

A classe CAnimationController é a classe chave que gere as animações. Pode criar uma ou mais instâncias de controlador de animação numa aplicação e, opcionalmente, ligar uma instância de controlador de animação a um objeto CWnd usando CAnimationController::SetRelatedWnd. Esta ligação é necessária para enviar automaticamente WM_PAINT mensagens para a janela relacionada quando o estado do gestor de animações mudou ou o temporizador de animação foi atualizado. Se não ativares esta relação, tens de redesenhar manualmente uma janela que exibe uma animação. Para esse fim, pode derivar uma classe a partir do CAnimationController e sobrescrever OnAnimationManagerStatusChanged e/ou OnAnimationTimerPostUpdate e invalidar uma ou mais janelas quando necessário.

Hierarquia de herança

CObject

CAnimationController

Requerimentos

Cabeçalho: afxanimationcontroller.h

CAnimationController::~CAnimationController

O destruidor. Chamada quando o objeto do controlador de animação está a ser destruído.

virtual ~CAnimationController(void);

CAnimationController::AddAnimationObject

Adiciona um objeto de animação a um grupo que pertence ao controlador de animação.

CAnimationGroup* AddAnimationObject(CAnimationBaseObject* pObject);

Parâmetros

pObject
Um apontador para um objeto de animação.

Valor de retorno

Um ponteiro para um grupo de animação existente ou novo onde pObject foi adicionado se a função tiver sucesso; NULL se o pObject já tiver sido adicionado a um grupo que pertence a outro controlador de animação.

Observações

Chame este método para adicionar um objeto de animação ao controlador de animação. Um objeto será adicionado a um grupo de acordo com o GroupID do objeto (ver CAnimationBaseObject::SetID). O controlador de animação criará um novo grupo se for o primeiro objeto a ser adicionado com o GroupID especificado. Um objeto de animação pode ser adicionado apenas a um controlador de animação. Se precisares de adicionar um objeto a outro controlador, liga primeiro para o RemoveAnimationObject. Se chamar SetID com um novo GroupID para um objeto que já foi adicionado a um grupo, o objeto será removido do grupo antigo e adicionado a outro grupo com ID especificado.

CAnimationController::AddKeyframeToGroup

Adiciona um keyframe para o grupo.

BOOL AddKeyframeToGroup(
    UINT32 nGroupID,
    CBaseKeyFrame* pKeyframe);

Parâmetros

nGroupID
Especifica o ID do grupo.

pKeyframe
Um apontador para um keyframe.

Valor de retorno

TRUE se a função tiver sucesso; caso contrário, FALSO.

Observações

Normalmente não precisas de chamar este método, usa o CAnimationController::CreateKeyframe, que cria e adiciona automaticamente o keyframe criado a um grupo.

CAnimationController::AnimateGroup

Prepara um grupo para executar animação e, opcionalmente, agenda-a.

BOOL AnimateGroup(
    UINT32 nGroupID,
    BOOL bScheduleNow = TRUE);

Parâmetros

nGroupID
Especifica GroupID.

bScheduleNow
Especifica se deve executar a animação imediatamente.

Valor de retorno

VERDADE se a animação foi agendada e executada com sucesso.

Observações

Este método faz o trabalho real de criar o storyboard, adicionar variáveis de animação, aplicar transições e definir keyframes. É possível atrasar o agendamento se definir o bScheduleNow para FALSE. Neste caso, o grupo especificado terá um storyboard que foi preparado para animação. Nesse ponto, podes configurar eventos para o storyboard e as variáveis de animação. Quando realmente precisares de executar a animação, chama CAnimationController::ScheduleGroup.

CAnimationController::CAnimationController

Constrói um controlador de animação.

CAnimationController(void);

CAnimationController::CleanUpGroup

Chamado pelo framework para limpar o grupo quando a animação está agendada.

void CleanUpGroup(UINT32 nGroupID);
void CleanUpGroup(CAnimationGroup* pGroup);

Parâmetros

nGroupID
Especifica GroupID.

pGroup
Um apontador para o grupo de animação para limpar.

Observações

Este método remove todas as transições e keyframes do grupo especificado, pois não são relevantes após uma animação ter sido agendada.

CAnimationController::CreateKeyframe

Cria um keyframe que depende da transição e adiciona-o ao grupo especificado.

CKeyFrame* CreateKeyframe(
    UINT32 nGroupID,
    CBaseTransition* pTransition);

CKeyFrame* CreateKeyframe(
    UINT32 nGroupID,
    CBaseKeyFrame* pKeyframe,
    UI_ANIMATION_SECONDS offset = 0.0);

Parâmetros

nGroupID
Especifica o ID do grupo para qual keyframe é criado.

pTransition
Um sinal para a transição. O keyframe será inserido no storyboard após esta transição.

pKeyframe
Um apontador para o keyframe base deste keyframe.

Deslocamento
Deslocamento em segundos em relação ao keyframe base especificado pelo pKeyframe.

Valor de retorno

Um ponteiro para um keyframe recém-criado se a função tiver sucesso.

Observações

Podes armazenar o ponteiro devolvido e basear outros keyframes no keyframe recém-criado (ver a segunda sobrecarga). É possível iniciar transições em keyframes – veja CBaseTransition::SetKeyframes. Não precisas de apagar keyframes criados desta forma, porque são eliminados automaticamente pelos grupos de animação. Tenha cuidado ao criar keyframes baseados noutros keyframes e transições e evite referências circulares.

CAnimationController::EnableAnimationManagerEvent

Define ou liberta um handler para chamar quando o estado do gestor de animação muda.

virtual BOOL EnableAnimationManagerEvent(BOOL bEnable = TRUE);

Parâmetros

bEnable
Especifica se deve definir ou libertar um handler.

Valor de retorno

TRUE se o handler foi ativado ou libertado com sucesso.

Observações

Quando um handler está definido (ativado), o Windows Animation chama OnAnimationManagerStatusChanged quando o estado do gestor de animações muda.

CAnimationController::EnableAnimationTimerEventHandler

Define ou liberta um handler para eventos de temporização e um handler para atualizações de timings.

virtual BOOL EnableAnimationTimerEventHandler(
    BOOL bEnable = TRUE,
    UI_ANIMATION_IDLE_BEHAVIOR idleBehavior = UI_ANIMATION_IDLE_BEHAVIOR_DISABLE);

Parâmetros

bEnable
Especifica se deve colocar ou libertar os handlers.

idleBehavior
Especifica o comportamento inativo para o gestor de atualizações do temporizador.

Valor de retorno

TRUE se os handlers forem ativados ou libertados com sucesso; FALSE se este método for chamado pela segunda vez sem libertar primeiro os handlers, ou se ocorrer qualquer outro erro.

Observações

Quando os handlers estão definidos (ativados), a API de animação do Windows chama métodos OnAnimationTimerPreUpdate, OnAnimationTimerPostUpdate, OnRenderingTooSlow. Precisas de ativar temporizadores de animação para permitir que a API de animação do Windows atualize storyboards. Caso contrário, terá de ligar para o CAnimationController::UpdateAnimationManager para direcionar o gestor de animações a atualizar os valores de todas as variáveis de animação.

CAnimationController::EnablePriorityComparisonHandler

Define ou liberta o handler de comparação de prioridades para chamar e determinar se um storyboard agendado pode ser cancelado, concluído, cortado ou comprimido.

virtual BOOL EnablePriorityComparisonHandler(DWORD dwHandlerType);

Parâmetros

dwHandlerType
Uma combinação de UI_ANIMATION_PHT_ flags (ver observações), que especifica quais os handlers a definir ou libertar.

Valor de retorno

TRUE se o handler foi ativado ou libertado com sucesso.

Observações

Quando um handler é definido (ativado), o Windows Animation chama os seguintes métodos virtuais dependendo do dwHandlerType: OnHasPriorityCancel, OnHasPriorityConclude, OnHasPriorityTrim, OnHasPriorityCompress. dwHandler pode ser uma combinação das seguintes flags: UI_ANIMATION_PHT_NONE - libertar todos os handlers UI_ANIMATION_PHT_CANCEL - definir Cancelar manipulador de comparação UI_ANIMATION_PHT_CONCLUDE - definir Concluir o handler de comparação UI_ANIMATION_PHT_COMPRESS - definir Comprimir o handler de comparação UI_ANIMATION_PHT_TRIM - definir Trim o handler de comparação UI_ANIMATION_PHT_CANCEL_REMOVE - remover Cancelar o handler de comparação UI_ANIMATION_PHT_CONCLUDE_REMOVE - remover Concluir o handler de comparação UI_ANIMATION_PHT_COMPRESS_REMOVE - remover o manipulador de comparação Compress UI_ANIMATION_PHT_TRIM_REMOVE - remover o handler de comparação Trim

CAnimationController::EnableStoryboardEventHandler

Define ou liberta um handler para o estado do storyboard e atualizações de eventos.

virtual BOOL EnableStoryboardEventHandler(
    UINT32 nGroupID,
    BOOL bEnable = TRUE);

Parâmetros

nGroupID
Especifica o ID do grupo.

bEnable
Especifica se deve definir ou libertar um handler.

Valor de retorno

TRUE se o handler foi ativado ou libertado com sucesso; FALSE se o grupo de animação especificado for agora encontrado ou se a animação do grupo especificado não tiver sido iniciada e o seu storyboard interno for NULL.

Observações

Quando um handler está definido (ativado), a API de animação do Windows chama métodos virtuais OnStoryboardStatusChanges e OnStoryboardAtualizados. Um handler deve ser definido depois de CAnimationController::Animate ter sido chamado para o grupo de animação especificado, pois cria o objeto IUIAnimationStoryboard encapsulado.

CAnimationController::FindAnimationGroup

Encontra um grupo de animação pelo seu ID de grupo.

CAnimationGroup* FindAnimationGroup(UINT32 nGroupID);
CAnimationGroup* FindAnimationGroup(IUIAnimationStoryboard* pStoryboard);

Parâmetros

nGroupID
Especifica um GroupID.

pStoryboard
Um indicador para um storyboard.

Valor de retorno

Um apontador para o grupo de animação ou NULL se o grupo com ID especificado não for encontrado.

Observações

Use este método para encontrar um grupo de animação em tempo de execução. Um grupo é criado e adicionado à lista interna de grupos de animação quando um primeiro objeto de animação com um determinado GroupID está a ser adicionado ao controlador de animação.

CAnimationController::FindAnimationObject

Encontra um objeto de animação contendo uma variável de animação especificada.

BOOL FindAnimationObject(
    IUIAnimationVariable* pVariable,
    CAnimationBaseObject** ppObject,
    CAnimationGroup** ppGroup);

Parâmetros

pVariável
Um apontador para a variável de animação.

ppObject
Saída. Contém um ponteiro para o objeto animation ou NULL.

ppGroup
Saída. Contém um apontador para o grupo de animação que contém o objeto de animação, ou NULL.

Valor de retorno

VERDADEIRO se o objeto foi encontrado; caso contrário, FALSO.

Observações

É chamado a partir de gestores de eventos quando é necessário encontrar um objeto de animação a partir da variável de animação recebida.

CAnimationController::gkeyframeStoryboard Start

Um keyframe que representa o início do storyboard.

static CBaseKeyFrame gkeyframeStoryboardStart;

CAnimationController::GetKeyframeStoryboard Start

Devolve um keyframe que identifica o início do storyboard.

static CBaseKeyFrame* GetKeyframeStoryboardStart();

Valor de retorno

Um apontador para o keyframe base, que identifica o início do storyboard.

Observações

Obtenha este keyframe para basear quaisquer outros keyframes ou transições no momento em que um storyboard começa.

CAnimationController::GetUIAnimationManager

Fornece acesso ao objeto IUIAnimationManager encapsulado.

IUIAnimationManager* GetUIAnimationManager();

Valor de retorno

Um ponteiro para a interface IUIAnimationManager ou NULL, caso a criação do gestor de animações falhasse.

Observações

Se o sistema operativo atual não suportar a API de animação do Windows, este método devolve NULL e, a partir daí, todas as chamadas subsequentes no CAnimationController::IsValid retornam FALSE. Pode precisar de aceder ao IUIAnimationManager para chamar os seus métodos de interface, que não são envolvidos pelo controlador de animação.

CAnimationController::GetUIAnimationTimer

Fornece acesso ao objeto IUIAnimationTimer encapsulado.

IUIAnimationTimer* GetUIAnimationTimer();

Valor de retorno

Um ponteiro para a interface IUIAnimationTimer ou NULL, caso a criação do temporizador de animação falhasse.

Observações

Se o sistema operativo atual não suportar a API de animação do Windows, este método devolve NULL e, a partir daí, todas as chamadas subsequentes no CAnimationController::IsValid retornam FALSE.

CAnimationController::GetUITransitionFactory

Um ponteiro para a interface IUIAnimationTransitionFactory ou NULL, caso a criação da biblioteca de transição falhasse.

IUIAnimationTransitionFactory* GetUITransitionFactory();

Valor de retorno

Um ponteiro para IUIAnimationTransitionFactory ou NULL, caso a criação da fábrica de transição falhasse.

Observações

Se o sistema operativo atual não suportar a API de animação do Windows, este método devolve NULL e, a partir daí, todas as chamadas subsequentes no CAnimationController::IsValid retornam FALSE.

CAnimationController::GetUITransitionLibrary

Fornece acesso ao objeto IUIAnimationTransitionLibrary encapsulado.

IUIAnimationTransitionLibrary* GetUITransitionLibrary();

Valor de retorno

Um ponteiro para a interface IUIAnimationTransitionLibrary ou NULL, caso a criação da biblioteca de transição falhasse.

Observações

Se o sistema operativo atual não suportar a API de animação do Windows, este método devolve NULL e, a partir daí, todas as chamadas subsequentes no CAnimationController::IsValid retornam FALSE.

CAnimationController::IsAnimationInProgress

Indica se pelo menos um grupo está a jogar animação.

virtual BOOL IsAnimationInProgress();

Valor de retorno

VERDADE, se houver uma animação em curso para este controlador de animação; caso contrário, FALSO.

Observações

Verifica o estado do gestor de animações e retorna TRUE se o estado for UI_ANIMATION_MANAGER_BUSY.

CAnimationController::IsValid

Indica se o controlador de animação é válido.

BOOL IsValid() const;

Valor de retorno

TRUE se o controlador de animação for válido; caso contrário, FALSO.

Observações

Este método só retorna FALSE se a API de animação do Windows não for suportada no sistema operativo atual e a criação do gestor de animações falhou porque não está registada. Tens de ligar para o GetUIAnimationManager pelo menos uma vez após a inicialização das bibliotecas COM para que esta flag seja ativada.

CAnimationController::m_bIsValid

Especifica se um controlador de animação é válido ou não. Este membro está definido para FALSE se o sistema operativo atual não suportar a API de animação do Windows.

BOOL m_bIsValid;

CAnimationController::m_lstAnimationGroups

Uma lista dos grupos de animação que pertencem a este controlador de animação.

CList<CAnimationGroup*, CAnimationGroup*> m_lstAnimationGroups;

CAnimationController::m_pAnimationManager

Armazena um ponteiro para o objeto COM do Animation Manager.

ATL::CComPtr<IUIAnimationManager> m_pAnimationManager;

CAnimationController::m_pAnimationTimer

Armazena um apontador para o objeto COM do Temporizador de Animação.

ATL::CComPtr<IUIAnimationTimer> m_pAnimationTimer;

CAnimationController::m_pRelatedWnd

Um apontador para um objeto CWnd relacionado, que pode ser redesenhado automaticamente quando o estado do gestor de animações mudou, ou ocorre um evento pós-atualização. Pode ser NULL.

CWnd* m_pRelatedWnd;

CAnimationController::m_pTransitionFactory

Armazena um apontador para o objeto COM do Transition Factory.

ATL::CComPtr<IUIAnimationTransitionFactory> m_pTransitionFactory;

CAnimationController::m_pTransitionLibrary

Armazena um ponteiro para o objeto COM da Biblioteca de Transição.

ATL::CComPtr<IUIAnimationTransitionLibrary> m_pTransitionLibrary;

CAnimationController::OnAfterSchedule

Chamada pelo framework quando uma animação para o grupo especificado acaba de ser agendada.

virtual void OnAfterSchedule(CAnimationGroup* pGroup);

Parâmetros

pGroup
Um apontamento para um grupo de animação, que já foi agendado.

Observações

A implementação padrão remove os keyframes do grupo especificado e faz transições das variáveis de animação que pertencem ao grupo especificado. Pode ser anulado numa classe derivada para realizar quaisquer ações adicionais no calendário de animação.

CAnimationController::OnAnimationIntegerValueChanged

Chamado pelo framework quando o valor inteiro da variável de animação mudou.

virtual void OnAnimationIntegerValueChanged(
    CAnimationGroup* pGroup,
    CAnimationBaseObject* pObject,
    IUIAnimationVariable* variable,
    INT32 newValue,
    INT32 prevValue);

Parâmetros

pGroup
Um apontador para um grupo de animação que contém um objeto de animação cujo valor mudou.

pObject
Um apontador para um objeto de animação que contém uma variável de animação cujo valor mudou.

variable
Um apontador para uma variável de animação.

newValue
Especifica novo valor.

prevValue
Especifica o valor anterior.

Observações

Este método chama-se se ativar eventos de variáveis de animação com EnableIntegerValueChangedEvent chamado para uma variável de animação específica ou objeto de animação. Pode ser sobreposto numa classe derivada para realizar ações específicas da aplicação.

CAnimationController::OnAnimationManagerStatusAlterado

Chamado pelo framework em resposta ao evento StatusChanged do gestor de animações.

virtual void OnAnimationManagerStatusChanged(
    UI_ANIMATION_MANAGER_STATUS newStatus,
    UI_ANIMATION_MANAGER_STATUS previousStatus);

Parâmetros

novo Estado
Novo estado de gestor de animação.

estado anterior
Estado anterior do gestor de animação.

Observações

Este método é chamado se ativar eventos do gestor de animação com o EnableAnimationManagerEvent. Pode ser sobreposto numa classe derivada para realizar ações específicas da aplicação. A implementação padrão atualiza uma janela relacionada se tiver sido definida com SetRelatedWnd.

CAnimationController::OnAnimationTimerPostUpdate

É chamado pelo framework depois de terminar uma atualização de animação.

virtual void OnAnimationTimerPostUpdate();

Observações

Este método é chamado se ativar os gestores de eventos do temporizador usando o EnableAnimationTimerEventHandler. Pode ser sobreposto numa classe derivada para realizar ações específicas da aplicação.

CAnimationController::OnAnimationTimerPreUpdate

É chamado pelo framework antes de começar uma atualização de animação.

virtual void OnAnimationTimerPreUpdate();

Observações

Este método é chamado se ativar os gestores de eventos do temporizador usando o EnableAnimationTimerEventHandler. Pode ser sobreposto numa classe derivada para realizar ações específicas da aplicação.

CAnimationController::OnAnimationTimeTimeRRenderingTooSlow

Chamada pelo framework quando a taxa de fotogramas de renderização de uma animação cai abaixo de uma taxa mínima desejável.

virtual void OnAnimationTimerRenderingTooSlow(UINT32 fps);

Parâmetros

FPS
A taxa de frames atual em frames por segundo.

Observações

Este método é chamado se ativar os gestores de eventos do temporizador usando o EnableAnimationTimerEventHandler. Pode ser sobreposto numa classe derivada para realizar ações específicas da aplicação. A taxa de fotogramas mínima desejada é especificada chamando IUIAnimationTimer::SetFrameRateThreshold.

CAnimationController::OnAnimationValueChanged

Chamada pelo framework quando o valor da variável de animação mudou.

virtual void OnAnimationValueChanged(
    CAnimationGroup* pGroup,
    CAnimationBaseObject* pObject,
    IUIAnimationVariable* variable,
    DOUBLE newValue,
    DOUBLE prevValue);

Parâmetros

pGroup
Um apontador para um grupo de animação que contém um objeto de animação cujo valor mudou.

pObject
Um apontador para um objeto de animação que contém uma variável de animação cujo valor mudou.

variable
Um apontador para uma variável de animação.

newValue
Especifica novo valor.

prevValue
Especifica o valor anterior.

Observações

Este método chama-se se ativar eventos de variáveis de animação com o EnableValueChangedEvent chamado para uma variável de animação específica ou objeto de animação. Pode ser sobreposto numa classe derivada para realizar ações específicas da aplicação.

CAnimationController::OnBeforeAnimationStart

Chamado pela framework mesmo antes da animação ser agendada.

virtual void OnBeforeAnimationStart(CAnimationGroup* pGroup);

Parâmetros

pGroup
Um apontar para um grupo de animação cuja animação está prestes a começar.

Observações

Esta chamada é encaminhada para CWnd relacionada e pode ser sobreposta numa classe derivada para realizar quaisquer ações adicionais antes do início da animação para o grupo especificado.

CAnimationController::OnHasPriorityCancel

Chamado pelo framework para resolver conflitos de agendamento.

virtual BOOL OnHasPriorityCancel(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parâmetros

pGroupScheduled
O grupo que detém o storyboard atualmente agendado.

pGroupNew
O grupo que detém o novo storyboard está em conflito de agenda com o storyboard agendado pertencente ao pGroupScheduled.

prioridadeEfeito
O efeito potencial no pGroupNew se o pGroupScheduled tiver uma prioridade superior.

Valor de retorno

Deverá voltar VERDADEIRO se o storyboard pertencente ao pGroupNew tiver prioridade. Deve devolver FALSE se o storyboard pertencente ao pGroupScheduled tiver prioridade.

Observações

Este método é chamado se ativar eventos de comparação de prioridades usando CAnimationController::EnablePriorityComparisonHandler e especificar UI_ANIMATION_PHT_CANCEL. Pode ser sobreposto numa classe derivada para realizar ações específicas da aplicação. Leia a documentação da API de animação do Windows para mais informações sobre Gestão de Conflitos.

CAnimationController::OnHasPriorityCompress

Chamado pelo framework para resolver conflitos de agendamento.

virtual BOOL OnHasPriorityCompress(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parâmetros

pGroupScheduled
O grupo que detém o storyboard atualmente agendado.

pGroupNew
O grupo que detém o novo storyboard está em conflito de agenda com o storyboard agendado pertencente ao pGroupScheduled.

prioridadeEfeito
O efeito potencial no pGroupNew se o pGroupScheduled tiver uma prioridade superior.

Valor de retorno

Deverá voltar VERDADEIRO se o storyboard pertencente ao pGroupNew tiver prioridade. Deve devolver FALSE se o storyboard pertencente ao pGroupScheduled tiver prioridade.

Observações

Este método é chamado se ativar eventos de comparação de prioridades usando CAnimationController::EnablePriorityComparisonHandler e especificar UI_ANIMATION_PHT_COMPRESS. Pode ser sobreposto numa classe derivada para realizar ações específicas da aplicação. Leia a documentação da API de animação do Windows para mais informações sobre Gestão de Conflitos.

CAnimationController::OnHasPriorityConclude

Chamado pelo framework para resolver conflitos de agendamento.

virtual BOOL OnHasPriorityConclude(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parâmetros

pGroupScheduled
O grupo que detém o storyboard atualmente agendado.

pGroupNew
O grupo que detém o novo storyboard está em conflito de agenda com o storyboard agendado pertencente ao pGroupScheduled.

prioridadeEfeito
O efeito potencial no pGroupNew se o pGroupScheduled tiver uma prioridade superior.

Valor de retorno

Deverá voltar VERDADEIRO se o storyboard pertencente ao pGroupNew tiver prioridade. Deve devolver FALSE se o storyboard pertencente ao pGroupScheduled tiver prioridade.

Observações

Este método é chamado se ativar eventos de comparação de prioridades usando CAnimationController::EnablePriorityComparisonHandler e especificar UI_ANIMATION_PHT_CONCLUDE. Pode ser sobreposto numa classe derivada para realizar ações específicas da aplicação. Leia a documentação da API de animação do Windows para mais informações sobre Gestão de Conflitos.

CAnimationController::OnHasPriorityTrim

Chamado pelo framework para resolver conflitos de agendamento.

virtual BOOL OnHasPriorityTrim(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parâmetros

pGroupScheduled
O grupo que detém o storyboard atualmente agendado.

pGroupNew
O grupo que detém o novo storyboard está em conflito de agenda com o storyboard agendado pertencente ao pGroupScheduled.

prioridadeEfeito
O efeito potencial no pGroupNew se o pGroupScheduled tiver uma prioridade superior.

Valor de retorno

Deverá voltar VERDADEIRO se o storyboard pertencente ao pGroupNew tiver prioridade. Deve devolver FALSE se o storyboard pertencente ao pGroupScheduled tiver prioridade.

Observações

Este método é chamado se ativar eventos de comparação de prioridades usando CAnimationController::EnablePriorityComparisonHandler e especificar UI_ANIMATION_PHT_TRIM. Pode ser sobreposto numa classe derivada para realizar ações específicas da aplicação. Leia a documentação da API de animação do Windows para mais informações sobre Gestão de Conflitos.

ControladorDeCAnimação::EmEstadoStoryboard Alterado

É chamado pelo framework quando o estado do storyboard mudou.

virtual void OnStoryboardStatusChanged(
    CAnimationGroup* pGroup,
    UI_ANIMATION_STORYBOARD_STATUS newStatus,
    UI_ANIMATION_STORYBOARD_STATUS previousStatus);

Parâmetros

pGroup
Uma referência a um grupo de animação que detém o storyboard cujo estatuto mudou.

novo Estado
Especifica o novo estatuto.

estado anterior
Especifica o estado anterior.

Observações

Este método é chamado se ativar eventos de storyboard usando CAnimationController::EnableStoryboardEventHandler. Pode ser sobreposto numa classe derivada para realizar ações específicas da aplicação.

CAnimationController::OnStoryboardAtualizado

É chamado pelo framework quando o storyboard é atualizado.

virtual void OnStoryboardUpdated(CAnimationGroup* pGroup);

Parâmetros

pGroup
Uma indicação para um grupo que detém o storyboard.

Observações

Este método é chamado se ativar eventos de storyboard usando CAnimationController::EnableStoryboardEventHandler. Pode ser sobreposto numa classe derivada para realizar ações específicas da aplicação.

CAnimationController::RemoveAllAnimationGroups

Remove todos os grupos de animação do controlador de animação.

void RemoveAllAnimationGroups();

Observações

Todos os grupos serão eliminados, e o seu ponteiro, se armazenado ao nível da aplicação, deve ser invalidado. Se CAnimationGroup::m_bAutodestroyAnimationObjects para um grupo a ser eliminado for TRUE, todos os objetos de animação que pertencem a esse grupo serão eliminados; caso contrário, as suas referências ao controlador de animação principal serão definidas como NULL e podem ser adicionadas a outro controlador.

CAnimationController::RemoveAnimationGroup

Remove um grupo de animação com ID especificado do controlador de animação.

void RemoveAnimationGroup(UINT32 nGroupID);

Parâmetros

nGroupID
Especifica o ID do grupo de animação.

Observações

Este método remove um grupo de animação da lista interna de grupos e elimina-o, portanto, se armazenou um ponteiro para esse grupo de animação, deve ser invalidado. Se CAnimationGroup::m_bAutodestroyAnimationObjects for TRUE, todos os objetos de animação que pertencem a esse grupo serão eliminados; caso contrário, as suas referências ao controlador de animação principal serão definidas como NULL e podem ser adicionadas a outro controlador.

CAnimationController::RemoveAnimationObject

Remover um objeto de animação do controlador de animação.

void RemoveAnimationObject(
    CAnimationBaseObject* pObject,
    BOOL bNoDelete = FALSE);

Parâmetros

pObject
Um apontador para um objeto de animação.

bNoDelete
Se este parâmetro for VERDADEIRO, o objeto não será eliminado ao ser removido.

Observações

Remove um objeto de animação do controlador de animação e do grupo de animação. Chame esta função se um determinado objeto já não deve ser animado, ou se precisar de mover o objeto para outro controlador de animação. No último caso, o bNoDelete tem de ser VERDADEIRO.

CAnimationController::RemoveTransitions

Remove transições de objetos de animação que pertencem ao grupo especificado.

void RemoveTransitions(UINT32 nGroupID);

Parâmetros

nGroupID
Especifica o ID do grupo.

Observações

O grupo repete os seus objetos de animação e chama ClearTransitions(FALSE) para cada objeto de animação. Este método é chamado pelo framework após a animação ter sido agendada.

CAnimationController::ScheduleGroup

Agenda uma animação.

BOOL ScheduleGroup(
    UINT32 nGroupID,
    UI_ANIMATION_SECONDS time = 0.0);

Parâmetros

nGroupID
Especifica o ID do Grupo de Animação para agendar.

time
Especifica o horário para agendar.

Valor de retorno

VERDADE se a animação foi programada com sucesso. FALSE se o storyboard não tiver sido criado, ou se ocorrer outro erro.

Observações

Deve chamar o AnimateGroup com o parâmetro bScheduleNow definido como FALSE prior ScheduleGroup. Pode especificar o tempo de animação desejado obtido através do IUIAnimationTimer::GetTime. Se o parâmetro de tempo for 0.0, a animação é agendada para o tempo atual.

CAnimationController::SetRelatedWnd

Estabelece uma relação entre o controlador de animação e uma janela.

void SetRelatedWnd(CWnd* pWnd);

Parâmetros

pWnd
Um ponteiro para o objeto janela para definir.

Observações

Se um objeto CWnd relacionado estiver definido, o controlador de animação pode atualizá-lo automaticamente (enviar WM_PAINT mensagem) quando o estado do gestor de animações mudou ou ocorreu um evento de temporizador pós-atualização.

CAnimationController::UpdateAnimationManager

Orienta o gestor de animações a atualizar os valores de todas as variáveis de animação.

virtual void UpdateAnimationManager();

Observações

Chamar este método avança o gestor de animação para o tempo atual, alterando os estados dos storyboards conforme necessário e atualizando quaisquer variáveis de animação para valores interpolados apropriados. Internamente, este método chama IUIAnimationTimer::GetTime(timeNow) e IUIAnimationManager::Update(timeNow). Sobrescreva este método numa classe derivada para personalizar este comportamento.

Consulte também

Classes