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
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.