Classe CAnimationBaseObject
A classe base para todos os objetos de animação.
Sintaxe
class CAnimationBaseObject : public CObject;
Membros
Construtores públicos
Nome | Descrição |
---|---|
CAnimationBaseObject::CAnimationBaseObject | Sobrecarregado. Constrói um objeto de animação. |
CAnimationBaseObject::~CAnimationBaseObject | O destruidor. Chamado quando um objeto de animação está sendo destruído. |
Métodos públicos
Nome | Descrição |
---|---|
CAnimationBaseObject::ApplyTransitions | Adiciona transições ao storyboard com variável de animação encapsulada. |
CAnimationBaseObject::ClearTransitions | Remove todas as transições relacionadas. |
CAnimationBaseObject::ContainsVariable | Determina se um objeto de animação contém uma variável de animação específica. |
CAnimationBaseObject::CreateTransitions | Cria transições associadas a um objeto de animação. |
CAnimationBaseObject::DetachFromController | Desanexa um objeto de animação do controlador de animação pai. |
CAnimationBaseObject::EnableIntegerValueChangedEvent | Configura o manipulador de eventos Valor Inteiro Alterado. |
CAnimationBaseObject::EnableValueChangedEvent | Configura o manipulador de eventos Valor Alterado. |
CAnimationBaseObject::GetAutodestroyTransitions | Informa se a transição relacionada é destruída automaticamente. |
CAnimationBaseObject::GetGroupID | Retorna o ID do Grupo atual. |
CAnimationBaseObject::GetObjectID | Retorna o ID do Objeto atual. |
CAnimationBaseObject::GetUserData | Retorna dados definidos pelo usuário. |
CAnimationBaseObject::SetAutodestroyTransitions | Define um sinalizador para destruir automaticamente as transições. |
CAnimationBaseObject::SetID | Define novas IDs. |
CAnimationBaseObject::SetUserData | Define dados definidos pelo usuário. |
Métodos protegidos
Nome | Descrição |
---|---|
CAnimationBaseObject::GetAnimationVariableList | Coleta ponteiros para variáveis de animação contidas. |
CAnimationBaseObject::SetParentAnimationObjects | Estabelece a relação entre variáveis de animação, contidas em um objeto de animação e seu contêiner. |
Membros de dados protegidos
Nome | Descrição |
---|---|
CAnimationBaseObject::m_bAutodestroyTransitions | Especifica se as transições relacionadas devem ser destruídas automaticamente. |
CAnimationBaseObject::m_dwUserData | Armazena dados definidos pelo usuário. |
CAnimationBaseObject::m_nGroupID | Especifica a ID de grupo do objeto de animação. |
CAnimationBaseObject::m_nObjectID | Especifica a ID do objeto de animação. |
CAnimationBaseObject::m_pParentController | Um ponteiro para o controlador de animação pai. |
Comentários
Essa classe implementa métodos básicos para todos os objetos de animação. Um objeto de animação pode representar um valor, um ponto, um tamanho, um retângulo ou uma cor em um aplicativo, bem como qualquer entidade personalizada. Objetos de animação são armazenados em grupos de animação (confira CAnimationGroup). Cada grupo pode ser animado separadamente e pode ser tratado como um análogo do storyboard. Um objeto de animação encapsula uma ou mais variáveis de animação (confira CAnimationVariable), dependendo de sua representação lógica. Por exemplo, CAnimationRect contém quatro variáveis de animação: uma variável para cada lado do retângulo. Cada classe de objeto de animação expõe o método AddTransition sobrecarregado, que deve ser usado para aplicar transições a variáveis de animação encapsuladas. Um objeto de animação pode ser identificado pela ID do Objeto (opcionalmente) e pela ID do Grupo. Uma ID de Grupo é necessária para colocar um objeto de animação para corrigir o grupo, mas se uma ID de Grupo não for especificada, um objeto será colocado no grupo padrão com a ID 0. Se você chamar SetID com GroupID diferente, um objeto de animação será movido para outro grupo (um novo grupo será criado, se necessário).
Hierarquia de herança
CAnimationBaseObject
Requisitos
Cabeçalho: afxanimationcontroller.h
CAnimationBaseObject::~CAnimationBaseObject
O destruidor. Chamado quando um objeto de animação está sendo destruído.
virtual ~CAnimationBaseObject();
CAnimationBaseObject::ApplyTransitions
Adiciona transições ao storyboard com variável de animação encapsulada.
virtual BOOL ApplyTransitions(
IUIAnimationStoryboard* pStoryboard,
BOOL bDependOnKeyframes);
Parâmetros
pStoryboard
Um ponteiro para um storyboard.
bDependOnKeyframes
Quando FALSE, esse método adiciona somente as transições que não dependem de quadros-chave.
Valor de retorno
TRUE se as transições foram adicionadas com êxito.
Comentários
Adiciona transições relacionadas, que foram adicionadas com AddTransition (métodos sobrecarregados em classes derivadas), ao storyboard.
CAnimationBaseObject::CAnimationBaseObject
Constrói um objeto de animação.
CAnimationBaseObject();
CAnimationBaseObject(
UINT32 nGroupID,
UINT32 nObjectID = (UINT32)-1,
DWORD dwUserData = 0);
Parâmetros
nGroupID
Especifica a ID do Grupo.
nObjectID
Especifica a ID do objeto.
dwUserData
Dados definidos pelo usuário, que podem ser associados ao objeto de animação e recuperados posteriormente no runtime.
Comentários
Constrói um objeto de animação e atribui a ID de Objeto padrão (0) e A ID do Grupo (0).
CAnimationBaseObject::ClearTransitions
Remove todas as transições relacionadas.
virtual void ClearTransitions(BOOL bAutodestroy);
Parâmetros
bAutodestroy
Especifica se os objetos de transição devem ser destruídos automaticamente ou apenas removidos da lista relacionada.
Comentários
Remove todas as transições relacionadas e as destrói se o sinalizador bAutodestroy ou m_bAutodestroyTransitions for VERDADEIRO. As transições devem ser destruídas automaticamente somente se não estiverem alocadas na pilha. Se os sinalizadores acima forem FALSE, as transições serão removidas da lista interna de transições relacionadas.
CAnimationBaseObject::ContainsVariable
Determina se um objeto de animação contém uma variável de animação específica.
virtual BOOL ContainsVariable(IUIAnimationVariable* pVariable);
Parâmetros
pVariable
Um ponteiro para a variável de animação.
Valor de retorno
TRUE se a variável de animação estiver contida no objeto de animação; caso contrário, FALSE.
Comentários
Esse método pode ser usado para determinar se uma variável de animação especificada por pVariable está contida em um objeto de animação. Um objeto de animação, dependendo de seu tipo, pode conter diversas variáveis de animação. Por exemplo, CAnimationColor contém três variáveis, uma para cada componente de cor (vermelho, verde e azul). Quando um valor da variável de animação é alterado, a API de Animação do Windows envia eventos ValueChanged ou IntegerValueChanged (se habilitado) e o parâmetro desse evento é um ponteiro para a interface IUIAnimationVariable da variável de animação. Esse método ajuda a obter um ponteiro para a animação de um ponteiro para o objeto COM contido.
CAnimationBaseObject::CreateTransitions
Cria transições associadas a um objeto de animação.
BOOL CreateTransitions();
Valor de retorno
TRUE se a transição foi criada com êxito; caso contrário, FALSE.
Comentários
Faz loops sobre a lista de variáveis de animação encapsuladas em um objeto de animação derivada e cria transições associadas a cada variável de animação.
CAnimationBaseObject::DetachFromController
Desanexa um objeto de animação do controlador de animação pai.
void DetachFromController();
Comentários
Esse método é usado internamente.
CAnimationBaseObject::EnableIntegerValueChangedEvent
Configura o manipulador de eventos Valor Inteiro Alterado.
virtual void EnableIntegerValueChangedEvent(
CAnimationController* pController,
BOOL bEnable);
Parâmetros
pController
Um ponteiro para um controlador pai.
bEnable
Especifica se o evento Valor Inteiro Alterado deve ser habilitado ou desabilitado.
Comentários
Se o manipulador de eventos Valor Inteiro Alterado estiver habilitado, você poderá manipular esse evento no método CAnimationController::OnAnimationIntegerValueChanged, que deve ser substituído em uma classe derivada de CAnimationController. Esse método é chamado sempre que o valor inteiro da animação é alterado.
CAnimationBaseObject::EnableValueChangedEvent
Configura o manipulador de eventos Valor Alterado.
virtual void EnableValueChangedEvent(
CAnimationController* pController,
BOOL bEnable);
Parâmetros
pController
Um ponteiro para um controlador pai.
bEnable
Especifica se o evento Value Changed deve ser habilitado ou desabilitado.
Comentários
Se o manipulador de eventos Value Changed estiver habilitado, você poderá manipular esse evento no método CAnimationController::OnAnimationValueChanged, que deve ser substituído em uma classe derivada de CAnimationController. Esse método é chamado sempre que o valor da animação é alterado.
CAnimationBaseObject::GetAnimationVariableList
Coleta ponteiros para variáveis de animação contidas.
virtual void GetAnimationVariableList(
CList<CAnimationVariable*,
CAnimationVariable*>& list) = 0;
Parâmetros
lista
Uma lista que deve ser preenchida com variáveis de animação contidas em um objeto de animação.
Comentários
Esse método virtual puro deve ser substituído em uma classe derivada. Um objeto de animação, dependendo de seu tipo, contém uma ou mais variáveis de animação. Por exemplo, CAnimationPoint contém duas variáveis, para coordenadas X e Y, respectivamente. A classe base CAnimationBaseObject implementa alguns métodos genéricos, que atuam em uma lista de variáveis de animação: ApplyTransitions, ClearTransitions, EnableValueChangedEvent, EnableIntegerValueChangedEvent. Esses métodos chamam GetAnimationVariableList, que é preenchido em uma classe derivada com variáveis de animação reais contidas em um objeto de animação específico, então fazem um loop pela lista e executam as ações necessárias. Se você criar um objeto de animação personalizado, deverá adicionar à lista todas as variáveis de animação contidas nesse objeto.
CAnimationBaseObject::GetAutodestroyTransitions
Informa se a transição relacionada é destruída automaticamente.
BOOL GetAutodestroyTransitions() const;
Valor de retorno
Se TRUE, as transições relacionadas serão destruídas automaticamente; se FALSE, os objetos de transição devem ser desalocados chamando o aplicativo.
Comentários
Por padrão, esse sinalizador é TRUE. Defina esse sinalizador somente se você tiver alocado a transição na pilha e/ou as transições precisarem ser desalocadas pelo aplicativo de chamada.
CAnimationBaseObject::GetGroupID
Retorna o ID do Grupo atual.
UINT32 GetGroupID() const;
Valor de retorno
ID do grupo atual.
Comentários
Use esse método para recuperar a ID do Grupo. Será 0 se a ID do Grupo não tiver sido definida explicitamente no construtor ou com SetID.
CAnimationBaseObject::GetObjectID
Retorna o ID do Objeto atual.
UINT32 GetObjectID() const;
Valor de retorno
ID do objeto atual.
Comentários
Use esse método para recuperar a ID do objeto. Será 0 se a ID do Objeto não tiver sido definida explicitamente no construtor ou com SetID.
CAnimationBaseObject::GetUserData
Retorna dados definidos pelo usuário.
DWORD GetUserData() const;
Valor de retorno
Um valor de dados personalizados.
Comentários
Chame esse método para recuperar os dados personalizados no runtime. O valor retornado será 0 se não tiver sido inicializado explicitamente no construtor ou com SetUserData.
CAnimationBaseObject::m_bAutodestroyTransitions
Especifica se as transições relacionadas devem ser destruídas automaticamente.
BOOL m_bAutodestroyTransitions;
CAnimationBaseObject::m_dwUserData
Armazena dados definidos pelo usuário.
DWORD m_dwUserData;
CAnimationBaseObject::m_nGroupID
Especifica a ID de grupo do objeto de animação.
UINT32 m_nGroupID;
CAnimationBaseObject::m_nObjectID
Especifica a ID do objeto de animação.
UINT32 m_nObjectID;
CAnimationBaseObject::m_pParentController
Um ponteiro para o controlador de animação pai.
CAnimationController* m_pParentController;
CAnimationBaseObject::SetAutodestroyTransitions
Define um sinalizador para destruir automaticamente as transições.
void SetAutodestroyTransitions(BOOL bValue);
Parâmetros
bValue
Especifica o sinalizador de destruição automática.
Comentários
Defina esse sinalizador somente se você tiver alocado objetos de transição usando o operador new. Se, por algum motivo, os objetos de transição forem alocados na pilha, o sinalizador de destruição automática deverá ser FALSE. Por padrão, esse sinalizador é TRUE.
CAnimationBaseObject::SetID
Define novas IDs.
void SetID(
UINT32 nObjectID,
UINT32 nGroupID = 0);
Parâmetros
nObjectID
Especifica a nova ID do objeto.
nGroupID
Especifica a nova ID do Grupo.
Comentários
Permite alterar a ID do objeto e a ID do grupo. Se a nova ID do Grupo for diferente da ID atual, um objeto de animação será movido para outro grupo (um grupo será criado, se necessário).
CAnimationBaseObject::SetParentAnimationObjects
Estabelece a relação entre variáveis de animação, contidas em um objeto de animação e seu contêiner.
virtual void SetParentAnimationObjects();
Comentários
Esse auxiliar pode ser usado para estabelecer uma relação entre variáveis de animação contidas em um objeto de animação e seu contêiner. Ele faz loop sobre variáveis de animação e define um ponteiro de voltar para um objeto de animação pai para cada variável de animação. Na implementação atual, a relação real é estabelecida em CAnimationBaseObject::ApplyTransitions, portanto, os ponteiros de voltar não são definidos até que você chame CAnimationGroup::Animate. Saber a relação pode ser útil quando você processa eventos e precisa obter um objeto de animação pai de CAnimationVariable. Use CAnimationVariable::GetParentAnimationObject.
CAnimationBaseObject::SetUserData
Define dados definidos pelo usuário.
void SetUserData (DWORD dwUserData);
Parâmetros
dwUserData
Especifica os dados personalizados.
Comentários
Use esse método para associar dados personalizados a um objeto de animação. Esses dados podem ser recuperados posteriormente no runtime por GetUserData.