Partilhar via


Classe CAnimationController

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

Sintaxe

class CAnimationController : public CObject;

Membros

Construtores públicos

Nome Descrição
CAnimationController::CAnimationController Cria um controlador de animação.
CAnimationController::~CAnimationController O destruidor. Chamado quando o objeto do controlador de animação está sendo destruído.

Métodos públicos

Nome Descrição
CAnimationController::AddAnimationObject Adiciona um objeto de animação a um grupo que pertence ao controlador de animação.
CAnimationController::AddKeyframeToGroup Adiciona um quadro chave ao grupo.
CAnimationController::AnimateGroup Prepara um grupo para executar e, opcionalmente, agendar a animação.
CAnimationController::CleanUpGroup Sobrecarregado. Chamado pela estrutura para limpar o grupo, quando a animação é agendada.
CAnimationController::CreateKeyframe Sobrecarregado. Cria um quadro-chave que depende da transição e o adiciona ao grupo especificado.
CAnimationController::EnableAnimationManagerEvent Define ou libera um manipulador a ser chamado, quando o status do gerenciador de animação é alterado.
CAnimationController::EnableAnimationTimerEventHandler Define ou libera um manipulador para eventos de tempo e um manipulador para atualizações de tempo.
CAnimationController::EnablePriorityComparisonHandler Define ou libera o manipulador de comparação de prioridade a ser chamado, para determinar se um storyboard agendado pode ser cancelado, concluído, cortado ou compactado.
CAnimationController::EnableStoryboardEventHandler Define ou libera um manipulador para o status do storyboard e eventos de atualização.
CAnimationController::FindAnimationGroup Sobrecarregado. Localiza um grupo de animação pelo storyboard.
CAnimationController::FindAnimationObject Localiza o objeto de animação que contém uma variável de animação especificada.
CAnimationController::GetKeyframeStoryboardStart Retorna um quadro-chave 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, se ocorreu uma falha na criação da biblioteca de transições.
CAnimationController::GetUITransitionLibrary Fornece acesso ao objeto IUIAnimationTransitionLibrary encapsulado.
CAnimationController::IsAnimationInProgress Informa se pelo menos um grupo está reproduzindo a animação.
CAnimationController::IsValid Informa se o controlador de animação é válido.
CAnimationController::OnAnimationIntegerValueChanged Chamado pela estrutura quando o valor inteiro da variável de animação é alterado.
CAnimationController::OnAnimationManagerStatusChanged Chamado pela estrutura em resposta ao evento StatusChanged do gerenciador de animação.
CAnimationController::OnAnimationTimerPostUpdate Chamado pela estrutura após a conclusão de uma atualização de animação.
CAnimationController::OnAnimationTimerPreUpdate Chamado pela estrutura antes de uma atualização de animação começar.
CAnimationController::OnAnimationTimerRenderingTooSlow Chamado pela estrutura quando a taxa de quadros de renderização de uma animação fica abaixo da taxa de quadros mínima desejável.
CAnimationController::OnAnimationValueChanged Chamado pela estrutura quando o valor da variável de animação é alterado.
CAnimationController::OnBeforeAnimationStart Chamado pela estrutura pouco antes de a animação ser agendada.
CAnimationController::OnHasPriorityCancel Chamado pela estrutura para resolver conflitos de agendamento.
CAnimationController::OnHasPriorityCompress Chamado pela estrutura para resolver conflitos de agendamento.
CAnimationController::OnHasPriorityConclude Chamado pela estrutura para resolver conflitos de agendamento.
CAnimationController::OnHasPriorityTrim Chamado pela estrutura para resolver conflitos de agendamento.
CAnimationController::OnStoryboardStatusChanged Chamado pela estrutura quando o status do storyboard é alterado.
CAnimationController::OnStoryboardUpdated Chamado pela estrutura 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 a ID especificada do controlador de animação.
CAnimationController::RemoveAnimationObject Remove um objeto de animação do controlador de animação.
CAnimationController::RemoveTransitions Remove as transições dos 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 Direciona o gerenciador de animação para atualizar os valores de todas as variáveis de animação.

Métodos protegidos

Nome Descrição
CAnimationController::CleanUpGroup Sobrecarregado. Um auxiliar que limpa o grupo.
CAnimationController::OnAfterSchedule Chamado pela estrutura quando uma animação do grupo especificado acaba de ser agendada.

Membros de dados protegidos

Nome Descrição
CAnimationController::gkeyframeStoryboardStart Um quadro-chave que representa o início do storyboard.
CAnimationController::m_bIsValid Especifica se um controlador de animação é válido. Esse membro é definido como FALSE, se o SO atual não é compatível com a API de Animação do Windows.
CAnimationController::m_lstAnimationGroups Uma lista de grupos de animação que pertencem a esse controlador de animação.
CAnimationController::m_pAnimationManager Armazena um ponteiro para o objeto COM do Gerenciador de Animação.
CAnimationController::m_pAnimationTimer Armazena um ponteiro para o objeto COM do Temporizador de Animação.
CAnimationController::m_pRelatedWnd Um ponteiro para um objeto CWnd relacionado, que pode ser redesenhado automaticamente quando o status do gerenciador de animação é alterado ou quando ocorre o evento pós-atualização. Pode ser NULL.
CAnimationController::m_pTransitionFactory Armazena um ponteiro para o objeto COM da Fábrica de Transições.
CAnimationController::m_pTransitionLibrary Armazena um ponteiro para o objeto COM da Biblioteca de Transições.

Comentários

A classe CAnimationController é a principal classe que gerencia animações. Você pode criar uma ou mais instâncias do controlador de animação em um aplicativo e, opcionalmente, conectar uma instância do controlador de animação a um objeto CWnd usando CAnimationController::SetRelatedWnd. Essa conexão é necessária para enviar mensagens WM_PAINT para a janela relacionada automaticamente, quando o status do gerenciador de animação é alterado ou o temporizador de animação é atualizado. Se você não habilitar essa relação, deve redesenhar uma janela que exibe uma animação manualmente. Para essa finalidade, você pode derivar uma classe a partir do CAnimationController e substituir OnAnimationManagerStatusChanged e/ou OnAnimationTimerPostUpdate e invalidar uma ou mais janelas, quando necessário.

Hierarquia de herança

CObject

CAnimationController

Requisitos

Cabeçalho: afxanimationcontroller.h

CAnimationController::~CAnimationController

O destruidor. Chamado quando o objeto do controlador de animação está sendo 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 ponteiro para um objeto de animação.

Valor de retorno

Um ponteiro para um grupo de animação novo ou existente em que pObject é adicionado, se a função tiver êxito. NULL, se pObject já tiver sido adicionado a um grupo que pertence a outro controlador de animação.

Comentários

Chame esse 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 (confira CAnimationBaseObject::SetID). O controlador de animação criará um novo grupo, se esse for o primeiro objeto adicionado com o GroupID especificado. Um objeto de animação só pode ser adicionado a um controlador de animação. Se você precisar adicionar um objeto a outro controlador, chame RemoveAnimationObject primeiro. Se você chamar SetID com o 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 a ID especificada.

CAnimationController::AddKeyframeToGroup

Adiciona um quadro chave ao grupo.

BOOL AddKeyframeToGroup(
    UINT32 nGroupID,
    CBaseKeyFrame* pKeyframe);

Parâmetros

nGroupID
Especifica a ID do Grupo.

pKeyframe
Um ponteiro para um quadro-chave.

Valor de retorno

TRUE, se a função tiver êxito. Caso contrário, FALSE.

Comentários

Normalmente, você não precisa chamar esse método, use CAnimationController::CreateKeyframe, que cria e adiciona o quadro de chaves criado para um grupo automaticamente.

CAnimationController::AnimateGroup

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

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

Parâmetros

nGroupID
Especifica a GroupID.

bScheduleNow
Especifica se a animação deve ser executada imediatamente.

Valor de retorno

TRUE, se a animação foi agendada e executada com êxito.

Comentários

Esse método faz o trabalho real, criando storyboard, adicionando variáveis de animação, aplicando transições e definindo quadros-chave. É possível atrasar o agendamento, se você definir bScheduleNow como FALSE. Nesse caso, o grupo especificado conterá um storyboard configurado para animação. A essa altura, você pode configurar eventos para as variáveis de storyboard e de animação. Quando você realmente precisa executar a chamada de animação CAnimationController::ScheduleGroup.

CAnimationController::CAnimationController

Cria um controlador de animação.

CAnimationController(void);

CAnimationController::CleanUpGroup

Chamado pela estrutura para limpar o grupo, quando a animação é agendada.

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

Parâmetros

nGroupID
Especifica a GroupID.

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

Comentários

Esse método remove todas as transições e quadros-chave do grupo especificado, pois eles não são relevantes depois que uma animação é agendada.

CAnimationController::CreateKeyframe

Cria um quadro-chave que depende da transição e o adiciona 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 a ID do Grupo para a qual o quadro-chave é criado.

pTransition
Um ponteiro para a transição. O quadro-chave será inserido no storyboard após essa transição.

pKeyframe
Um ponteiro para o quadro-chave base para esse quadro-chave.

deslocamento
Desloca em segundos do quadro-chave base especificado pelo pKeyframe.

Valor de retorno

Um ponteiro para o quadro-chave recém-criado, se a função tiver êxito.

Comentários

Você pode armazenar o ponteiro retornado e basear outros quadros-chave no quadro-chave recém-criado (confira a segunda sobrecarga). É possível começar as transições nos quadros-chave – confira CBaseTransition::SetKeyframes. Você não precisa excluir os quadros-chave criados dessa forma, pois eles são excluídos automaticamente pelos grupos de animação. Tenha cuidado ao criar quadros-chave com base em outros quadros-chave e transições e evite referências circulares.

CAnimationController::EnableAnimationManagerEvent

Define ou libera um manipulador a ser chamado, quando o status do gerenciador de animação é alterado.

virtual BOOL EnableAnimationManagerEvent(BOOL bEnable = TRUE);

Parâmetros

bEnable
Especifica se um manipulador deve ser definido ou liberado.

Valor de retorno

TRUE, se o manipulador foi definido ou liberado com êxito.

Comentários

Quando um manipulador é definido (habilitado), a Animação do Windows chama OnAnimationManagerStatusChanged quando o status do gerenciador de animações é alterado.

CAnimationController::EnableAnimationTimerEventHandler

Define ou libera um manipulador para eventos de tempo e um manipulador para atualizações de tempo.

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

Parâmetros

bEnable
Especifica se os manipuladores devem ser definidos ou liberados.

idleBehavior
Especifica o comportamento ocioso do manipulador de atualização do temporizador.

Valor de retorno

TRUE, se os manipuladores foram definidos ou liberados com êxito. FALSE, se esse método for chamado pela segunda vez sem liberar os manipuladores primeiro ou se ocorrer qualquer outro erro.

Comentários

Quando os manipuladores são definidos (habilitado), a API de Animação do Windows chama os métodos OnAnimationTimerPreUpdate, OnAnimationTimerPostUpdate, OnRenderingTooSlow. Você precisa habilitar os temporizadores de animação para permitir que a API de Animação do Windows atualize os storyboards. Caso contrário, você precisará chamar CAnimationController::UpdateAnimationManager para direcionar o gerenciador de animação, para atualizar os valores de todas as variáveis de animação.

CAnimationController::EnablePriorityComparisonHandler

Define ou libera o manipulador de comparação de prioridade a ser chamado, para determinar se um storyboard agendado pode ser cancelado, concluído, cortado ou compactado.

virtual BOOL EnablePriorityComparisonHandler(DWORD dwHandlerType);

Parâmetros

dwHandlerType
Uma combinação de sinalizadores de UI_ANIMATION_PHT_ (confira comentários), que especifica quais manipuladores devem ser definidos ou liberados.

Valor de retorno

TRUE, se o manipulador foi definido ou liberado com êxito.

Comentários

Quando um manipulador é definido (habilitado), a Animação do Windows chama os seguintes métodos virtuais, dependendo de dwHandlerType: OnHasPriorityCancel, OnHasPriorityConclude, OnHasPriorityTrim, OnHasPriorityCompress. dwHandler pode ser uma combinação dos seguintes sinalizadores: UI_ANIMATION_PHT_NONE – libere todos os manipuladores UI_ANIMATION_PHT_CANCEL – defina Cancelar manipulador de comparação UI_ANIMATION_PHT_CONCLUDE – defina Concluir manipulador de comparação UI_ANIMATION_PHT_COMPRESS – defina Compactar manipulador de comparação UI_ANIMATION_PHT_TRIM – defina Cortar manipulador de comparação UI_ANIMATION_PHT_CANCEL_REMOVE – remova Cancelar manipulador de comparação UI_ANIMATION_PHT_CONCLUDE_REMOVE – remova Concluir manipulador de comparação UI_ANIMATION_PHT_COMPRESS_REMOVE – remova Compactar manipulador de comparação UI_ANIMATION_PHT_TRIM_REMOVE – remova Cortar manipulador de comparação

CAnimationController::EnableStoryboardEventHandler

Define ou libera um manipulador para o status do storyboard e eventos de atualização.

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

Parâmetros

nGroupID
Especifica a ID do Grupo.

bEnable
Especifica se um manipulador deve ser definido ou liberado.

Valor de retorno

TRUE, se o manipulador foi definido ou liberado com êxito. FALSE, se o grupo de animação especificado foi encontrado agora ou se a animação do grupo especificado não foi iniciada e o storyboard interno é NULL.

Comentários

Quando um manipulador é definido (habilitado), a API de Animação do Windows chama os métodos virtuais OnStoryboardStatusChanges e OnStoryboardUpdated. Um identificador deve ser definido depois que CAnimationController::Animate tiver sido chamado para o grupo de animação especificado, pois ele cria o objeto IUIAnimationStoryboard encapsulado.

CAnimationController::FindAnimationGroup

Localiza um grupo de animação pela ID do Grupo.

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

Parâmetros

nGroupID
Especifica um GroupID.

pStoryboard
Um ponteiro para um storyboard.

Valor de retorno

Um ponteiro para o grupo de animação ou NULL, se o grupo com a ID especificada não for encontrado.

Comentários

Use esse método para localizar um grupo de animação em runtime. Um grupo é criado e adicionado à lista interna de grupos de animação, quando o primeiro objeto de animação com o groupID específico está sendo adicionado ao controlador de animação.

CAnimationController::FindAnimationObject

Localiza o objeto de animação que contém uma variável de animação especificada.

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

Parâmetros

pVariable
Um ponteiro para a variável de animação.

ppObject
Saída. Contém um ponteiro para o objeto de animação ou NULL.

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

Valor de retorno

TRUE, se o objeto foi encontrado. Caso contrário, FALSE.

Comentários

Chamado a partir dos manipuladores de eventos, quando é necessário encontrar um objeto de animação da variável de animação de entrada.

CAnimationController::gkeyframeStoryboardStart

Um quadro-chave que representa o início do storyboard.

static CBaseKeyFrame gkeyframeStoryboardStart;

CAnimationController::GetKeyframeStoryboardStart

Retorna um quadro-chave que identifica o início do storyboard.

static CBaseKeyFrame* GetKeyframeStoryboardStart();

Valor de retorno

Um ponteiro para o quadro-chave base, que identifica o início do storyboard.

Comentários

Obtenha esse quadro-chave para basear quaisquer outros quadros-chave ou transições no momento em que um storyboard é iniciado.

CAnimationController::GetUIAnimationManager

Fornece acesso ao objeto IUIAnimationManager encapsulado.

IUIAnimationManager* GetUIAnimationManager();

Valor de retorno

Um ponteiro para a interface IUIAnimationManager ou NULL, se ocorreu uma falha na criação do gerenciador de animação.

Comentários

Se o SO atual não for compatível com a API de Animação do Windows, esse método retornará NULL e, depois disso, todas as chamadas subsequentes em CAnimationController::IsValid retornarão FALSE. Talvez seja necessário acessar IUIAnimationManager para chamar os métodos de interface, que não são encapsulados 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, se ocorreu uma falha na criação do temporizador de animação.

Comentários

Se o SO atual não for compatível com a API de Animação do Windows, esse método retornará NULL e, depois disso, todas as chamadas subsequentes em CAnimationController::IsValid retornarão FALSE.

CAnimationController::GetUITransitionFactory

Um ponteiro para a interface IUIAnimationTransitionFactory ou NULL, se ocorreu uma falha na criação da biblioteca de transições.

IUIAnimationTransitionFactory* GetUITransitionFactory();

Valor de retorno

Um ponteiro para IUIAnimationTransitionFactory ou NULL, se ocorreu uma falha na criação da fábrica de transições.

Comentários

Se o SO atual não for compatível com a API de Animação do Windows, esse método retornará NULL e, depois disso, todas as chamadas subsequentes em CAnimationController::IsValid retornarão FALSE.

CAnimationController::GetUITransitionLibrary

Fornece acesso ao objeto IUIAnimationTransitionLibrary encapsulado.

IUIAnimationTransitionLibrary* GetUITransitionLibrary();

Valor de retorno

Um ponteiro para a interface IUIAnimationTransitionFactory ou NULL, se ocorreu uma falha na criação da biblioteca de transições.

Comentários

Se o SO atual não for compatível com a API de Animação do Windows, esse método retornará NULL e, depois disso, todas as chamadas subsequentes em CAnimationController::IsValid retornarão FALSE.

CAnimationController::IsAnimationInProgress

Informa se pelo menos um grupo está reproduzindo a animação.

virtual BOOL IsAnimationInProgress();

Valor de retorno

TRUE, se houver uma animação em andamento para este controlador de animação. Caso contrário, FALSE.

Comentários

Verifica o status do gerenciador de animação e retorna TRUE, se o status for UI_ANIMATION_MANAGER_BUSY.

CAnimationController::IsValid

Informa 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, FALSE.

Comentários

Esse método retornará FALSE, somente se não houver suporte para API de Animação do Windows no SO atual e a criação do gerenciador de animação falhar porque não está registrada. Você precisa chamar GetUIAnimationManager pelo menos uma vez após a inicialização de bibliotecas COM, para que a configuração desse sinalizador seja definida.

CAnimationController::m_bIsValid

Especifica se um controlador de animação é válido. Esse membro é definido como FALSE, se o SO atual não é compatível com a API de Animação do Windows.

BOOL m_bIsValid;

CAnimationController::m_lstAnimationGroups

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

CList<CAnimationGroup*, CAnimationGroup*> m_lstAnimationGroups;

CAnimationController::m_pAnimationManager

Armazena um ponteiro para o objeto COM do Gerenciador de Animação.

ATL::CComPtr<IUIAnimationManager> m_pAnimationManager;

CAnimationController::m_pAnimationTimer

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

ATL::CComPtr<IUIAnimationTimer> m_pAnimationTimer;

CAnimationController::m_pRelatedWnd

Um ponteiro para um objeto CWnd relacionado, que pode ser redesenhado automaticamente quando o status do gerenciador de animação é alterado ou quando ocorre o evento pós-atualização. Pode ser NULL.

CWnd* m_pRelatedWnd;

CAnimationController::m_pTransitionFactory

Armazena um ponteiro para o objeto COM da Fábrica de Transições.

ATL::CComPtr<IUIAnimationTransitionFactory> m_pTransitionFactory;

CAnimationController::m_pTransitionLibrary

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

ATL::CComPtr<IUIAnimationTransitionLibrary> m_pTransitionLibrary;

CAnimationController::OnAfterSchedule

Chamado pela estrutura quando uma animação do grupo especificado acaba de ser agendada.

virtual void OnAfterSchedule(CAnimationGroup* pGroup);

Parâmetros

pGroup
Um ponteiro para um grupo de animação, que foi agendado.

Comentários

A implementação padrão remove os quadros-chave do grupo especificado e faz a transição das variáveis de animação que pertencem ao grupo especificado. Pode ser substituído em uma classe derivada para executar ações adicionais, após o agendamento de animação.

CAnimationController::OnAnimationIntegerValueChanged

Chamado pela estrutura quando o valor inteiro da variável de animação é alterado.

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

Parâmetros

pGroup
Um ponteiro para um grupo de animação que contém um objeto de animação cujo valor foi alterado.

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

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

newValue
Especifica o novo valor.

prevValue
Especifica o valor anterior.

Comentários

Esse método será chamado, se você habilitar eventos de variável de animação com o EnableIntegerValueChangedEvent chamado para uma variável de animação ou objeto de animação específico. Ele pode ser substituído em uma classe derivada, para executar ações específicas do aplicativo.

CAnimationController::OnAnimationManagerStatusChanged

Chamado pela estrutura em resposta ao evento StatusChanged do gerenciador de animação.

virtual void OnAnimationManagerStatusChanged(
    UI_ANIMATION_MANAGER_STATUS newStatus,
    UI_ANIMATION_MANAGER_STATUS previousStatus);

Parâmetros

newStatus
Novo status do gerenciador de animação.

previousStatus
Status anterior do gerenciador de animação.

Comentários

Esse método será chamado, se você habilitar eventos do gerenciador de animação com o EnableAnimationManagerEvent. Ele pode ser substituído em uma classe derivada, para executar ações específicas do aplicativo. A implementação padrão atualizará uma janela relacionada, se tiver sido definida com SetRelatedWnd.

CAnimationController::OnAnimationTimerPostUpdate

Chamado pela estrutura após a conclusão de uma atualização de animação.

virtual void OnAnimationTimerPostUpdate();

Comentários

Esse método será chamado, se você habilitar manipuladores de eventos de temporizador usando o EnableAnimationTimerEventHandler. Ele pode ser substituído em uma classe derivada, para executar ações específicas do aplicativo.

CAnimationController::OnAnimationTimerPreUpdate

Chamado pela estrutura antes de uma atualização de animação começar.

virtual void OnAnimationTimerPreUpdate();

Comentários

Esse método será chamado, se você habilitar manipuladores de eventos de temporizador usando o EnableAnimationTimerEventHandler. Ele pode ser substituído em uma classe derivada, para executar ações específicas do aplicativo.

CAnimationController::OnAnimationTimerRenderingTooSlow

Chamado pela estrutura quando a taxa de quadros de renderização de uma animação fica abaixo da taxa de quadros mínima desejável.

virtual void OnAnimationTimerRenderingTooSlow(UINT32 fps);

Parâmetros

fps
A taxa de quadros atual em quadros por segundo.

Comentários

Esse método será chamado, se você habilitar manipuladores de eventos de temporizador usando o EnableAnimationTimerEventHandler. Ele pode ser substituído em uma classe derivada, para executar ações específicas do aplicativo. A taxa de quadros mínima desejável é especificada chamando IUIAnimationTimer::SetFrameRateThreshold.

CAnimationController::OnAnimationValueChanged

Chamado pela estrutura quando o valor da variável de animação é alterado.

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

Parâmetros

pGroup
Um ponteiro para um grupo de animação que contém um objeto de animação cujo valor foi alterado.

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

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

newValue
Especifica o novo valor.

prevValue
Especifica o valor anterior.

Comentários

Esse método será chamado, se você habilitar eventos de variável de animação com o EnableValueChangedEvent chamado para uma variável de animação ou objeto de animação específico. Ele pode ser substituído em uma classe derivada, para executar ações específicas do aplicativo.

CAnimationController::OnBeforeAnimationStart

Chamado pela estrutura pouco antes de a animação ser agendada.

virtual void OnBeforeAnimationStart(CAnimationGroup* pGroup);

Parâmetros

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

Comentários

Essa chamada é encaminhada para o CWnd relacionado e pode ser substituída em uma classe derivada para executar ações adicionais, antes que a animação seja iniciada para o grupo especificado.

CAnimationController::OnHasPriorityCancel

Chamado pela estrutura para resolver conflitos de agendamento.

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

Parâmetros

pGroupScheduled
O grupo a que pertence o storyboard agendado no momento.

pGroupNew
O grupo a que pertence o novo storyboard que está em conflito de agendamento com o storyboard agendado e que pertence ao pGroupScheduled.

priorityEffect
O possível efeito no pGroupNew, se o pGroupScheduled tiver uma prioridade mais alta.

Valor de retorno

Deve retornar TRUE, se o storyboard pertencente ao pGroupNew tiver prioridade. Deve retornar FALSE, se o storyboard pertencente ao pGroupScheduled tiver prioridade.

Comentários

Esse método será chamado, se você habilitar eventos de comparação de prioridade usando CAnimationController::EnablePriorityComparisonHandler e especificar UI_ANIMATION_PHT_CANCEL. Ele pode ser substituído em uma classe derivada, para executar ações específicas do aplicativo. Leia a documentação da API de Animação do Windows, para obter mais informações sobre o Gerenciamento de Conflitos.

CAnimationController::OnHasPriorityCompress

Chamado pela estrutura para resolver conflitos de agendamento.

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

Parâmetros

pGroupScheduled
O grupo a que pertence o storyboard agendado no momento.

pGroupNew
O grupo a que pertence o novo storyboard que está em conflito de agendamento com o storyboard agendado e que pertence ao pGroupScheduled.

priorityEffect
O possível efeito no pGroupNew, se o pGroupScheduled tiver uma prioridade mais alta.

Valor de retorno

Deve retornar TRUE, se o storyboard pertencente ao pGroupNew tiver prioridade. Deve retornar FALSE, se o storyboard pertencente ao pGroupScheduled tiver prioridade.

Comentários

Esse método será chamado, se você habilitar eventos de comparação de prioridade usando CAnimationController::EnablePriorityComparisonHandler e especificar UI_ANIMATION_PHT_COMPRESS. Ele pode ser substituído em uma classe derivada, para executar ações específicas do aplicativo. Leia a documentação da API de Animação do Windows, para obter mais informações sobre o Gerenciamento de Conflitos.

CAnimationController::OnHasPriorityConclude

Chamado pela estrutura para resolver conflitos de agendamento.

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

Parâmetros

pGroupScheduled
O grupo a que pertence o storyboard agendado no momento.

pGroupNew
O grupo a que pertence o novo storyboard que está em conflito de agendamento com o storyboard agendado e que pertence ao pGroupScheduled.

priorityEffect
O possível efeito no pGroupNew, se o pGroupScheduled tiver uma prioridade mais alta.

Valor de retorno

Deve retornar TRUE, se o storyboard pertencente ao pGroupNew tiver prioridade. Deve retornar FALSE, se o storyboard pertencente ao pGroupScheduled tiver prioridade.

Comentários

Esse método será chamado, se você habilitar eventos de comparação de prioridade usando CAnimationController::EnablePriorityComparisonHandler e especificar UI_ANIMATION_PHT_CONCLUDE. Ele pode ser substituído em uma classe derivada, para executar ações específicas do aplicativo. Leia a documentação da API de Animação do Windows, para obter mais informações sobre o Gerenciamento de Conflitos.

CAnimationController::OnHasPriorityTrim

Chamado pela estrutura para resolver conflitos de agendamento.

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

Parâmetros

pGroupScheduled
O grupo a que pertence o storyboard agendado no momento.

pGroupNew
O grupo a que pertence o novo storyboard que está em conflito de agendamento com o storyboard agendado e que pertence ao pGroupScheduled.

priorityEffect
O possível efeito no pGroupNew, se o pGroupScheduled tiver uma prioridade mais alta.

Valor de retorno

Deve retornar TRUE, se o storyboard pertencente ao pGroupNew tiver prioridade. Deve retornar FALSE, se o storyboard pertencente ao pGroupScheduled tiver prioridade.

Comentários

Esse método será chamado, se você habilitar eventos de comparação de prioridade usando CAnimationController::EnablePriorityComparisonHandler e especificar UI_ANIMATION_PHT_TRIM. Ele pode ser substituído em uma classe derivada, para executar ações específicas do aplicativo. Leia a documentação da API de Animação do Windows, para obter mais informações sobre o Gerenciamento de Conflitos.

CAnimationController::OnStoryboardStatusChanged

Chamado pela estrutura quando o status do storyboard é alterado.

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

Parâmetros

pGroup
Um ponteiro para um grupo de animação que possui o storyboard cujo status foi alterado.

newStatus
Especifica o novo status.

previousStatus
Especifica o status anterior.

Comentários

Esse método será chamado, se você habilitar eventos de storyboard usando CAnimationController::EnableStoryboardEventHandler. Ele pode ser substituído em uma classe derivada, para executar ações específicas do aplicativo.

CAnimationController::OnStoryboardUpdated

Chamado pela estrutura quando o storyboard é atualizado.

virtual void OnStoryboardUpdated(CAnimationGroup* pGroup);

Parâmetros

pGroup
Um ponteiro para um grupo a que pertence o storyboard.

Comentários

Esse método será chamado, se você habilitar eventos de storyboard usando CAnimationController::EnableStoryboardEventHandler. Ele pode ser substituído em uma classe derivada, para executar ações específicas do aplicativo.

CAnimationController::RemoveAllAnimationGroups

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

void RemoveAllAnimationGroups();

Comentários

Todos os grupos serão excluídos. O ponteiro, se armazenado no nível do aplicativo, deverá ser invalidado. Se o CAnimationGroup::m_bAutodestroyAnimationObjects de um grupo que está sendo excluído for TRUE, todos os objetos de animação que pertencem a esse grupo serão excluídos. Caso contrário, as referências ao controlador de animação pai serão definidas como NULL e poderão ser adicionadas a outro controlador.

CAnimationController::RemoveAnimationGroup

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

void RemoveAnimationGroup(UINT32 nGroupID);

Parâmetros

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

Comentários

Esse método remove um grupo de animação da lista interna de grupos e o exclui. Portanto, se você tiver armazenado um ponteiro para esse grupo de animação, ele deverá ser invalidado. Se o CAnimationGroup::m_bAutodestroyAnimationObjects for TRUE, todos os objetos de animação que pertencem a esse grupo serão excluídos. Caso contrário, as referências ao controlador de animação pai serão definidas como NULL e poderão ser adicionadas a outro controlador.

CAnimationController::RemoveAnimationObject

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

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

Parâmetros

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

bNoDelete
Se esse parâmetro for TRUE, o objeto não será excluído após a remoção.

Comentários

Remove um objeto de animação do controlador de animação e do grupo de animação. Chame essa função, se um objeto específico não deve mais ser animado ou se você precisar mover o objeto para outro controlador de animação. No último caso, bNoDelete deve ser TRUE.

CAnimationController::RemoveTransitions

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

void RemoveTransitions(UINT32 nGroupID);

Parâmetros

nGroupID
Especifica a ID do Grupo.

Comentários

O grupo faz um loop sobre os objetos de animação e chama ClearTransitions(FALSE) para cada objeto de animação. Esse método é chamado pela estrutura, depois que a animação foi agendada.

CAnimationController::ScheduleGroup

Agenda uma animação.

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

Parâmetros

nGroupID
Especifica a ID do Grupo de Animação a ser agendada.

time
Especifica o tempo a ser agendado.

Valor de retorno

TRUE, se a animação foi agendada com êxito. FALSE, se o storyboard não foi criado ou se ocorreu outro erro.

Comentários

Você deve chamar AnimateGroup, com o parâmetro bScheduleNow definido como FALSE antes do ScheduleGroup. Você pode especificar o tempo de animação desejado obtido de IUIAnimationTimer::GetTime. Se o parâmetro de hora for 0.0, a animação será agendada para a hora 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 de janela a ser definido.

Comentários

Se um objeto CWnd relacionado foi definido, o controlador de animação poderá atualizá-lo automaticamente (enviar mensagem WM_PAINT), quando o status do gerenciador de animação for alterado ou quando ocorrer o evento pós-atualização do temporizador.

CAnimationController::UpdateAnimationManager

Direciona o gerenciador de animação para atualizar os valores de todas as variáveis de animação.

virtual void UpdateAnimationManager();

Comentários

Chamar esse método avança o gerenciador de animações para a hora atual, alterando os status dos storyboards, conforme necessário, e atualizando todas as variáveis de animação para os valores interpolados apropriados. Internamente, esse método chama IUIAnimationTimer::GetTime(timeNow) e IUIAnimationManager::Update(timeNow). Substitua esse método em uma classe derivada para personalizar esse comportamento.

Confira também

Classes