Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Cada vez que seu aplicativo pinta, ele deve ler os valores atuais das variáveis de animação que representam as características visuais a serem animadas.
Visão geral
Ao desenhar um quadro, um aplicativo pode usar o IUIAnimationVariable::GetValue ou IUIAnimationVariable::GetIntegerValue método para solicitar os valores de quaisquer variáveis de animação que afetarão os visuais dentro do quadro. É possível recortar uma variável de animação para um intervalo de valores (SetLowerBound e SetUpperBound), e solicitar que seu valor seja arredondado para um inteiro usando um esquema de arredondamento especificado (SetRoundingMode).
Em vez de ler os valores de todas as variáveis para cada quadro, uma aplicação pode usar o método IUIAnimationVariable::SetVariableChangeHandler ou IUIAnimationVariable::SetVariableIntegerChangeHandler para registar um ou mais gestores de alteração de variáveis para receber notificações apenas quando há uma alteração no valor das variáveis (IUIAnimationVariableChangeHandler::OnValueChanged) ou no valor arredondado (IUIAnimationVariableIntegerChangeHandler::OnIntegerValueChanged). Para identificar as variáveis passadas para manipuladores de alteração de variáveis, um aplicativo pode aplicar tags a variáveis usando o método IUIAnimationVariable::SetTag. Estes são objetos (IUnknown*), pares inteiros que são interpretados pelo aplicativo.
Código de exemplo
O código de exemplo a seguir é retirado de Thumbnail.cpp no exemplo de animação do Windows Grid Layout; consulte o método CMainWindow::Render. Ele usa o GetValue método para ler os valores como valores de ponto flutuante.
// Get the x-coordinate and y-coordinate animation variable values
DOUBLE x=0;
hr = m_pAnimationVariableX->GetValue(&x);
if (SUCCEEDED(hr))
{
DOUBLE y=0;
hr = m_pAnimationVariableY->GetValue(&y);
if (SUCCEEDED(hr))
{
// Draw the object
...
}
}
O seguinte código de exemplo é retirado de MainWindow.cpp no exemplo da Animação do Windows Timer-Driven Animation; consulte o método CMainWindow::DrawBackground. Ele usa o GetIntegerValue método para ler os valores como valores inteiros.
// Get the RGB animation variable values
INT32 red;
HRESULT hr = m_pAnimationVariableRed->GetIntegerValue(
&red
);
if (SUCCEEDED(hr))
{
INT32 green;
hr = m_pAnimationVariableGreen->GetIntegerValue(
&green
);
if (SUCCEEDED(hr))
{
INT32 blue;
hr = m_pAnimationVariableBlue->GetIntegerValue(
&blue
);
if (SUCCEEDED(hr))
{
// Set the RGB of the background brush to the new animated value
...
// Paint the background
...
}
}
...
}
Etapa anterior
Antes de iniciar esta etapa, você deve ter concluído esta etapa: Atualizar o Gerenciador de Animações e Desenhar Quadros.
Próximo Passo
Depois de concluir esta etapa, a próxima etapa é: Criar um Storyboard e Adicionar transições.
Tópicos relacionados