Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Um aplicativo deve criar uma variável de animação para cada característica visual a ser animada usando a Animação do Windows.
Visão geral
As variáveis de animação são criadas usando o gerenciador de animação, e o aplicativo deve manter uma referência a cada uma delas pelo tempo que for necessário. Seu aplicativo geralmente criará cada variável de animação ao mesmo tempo que o objeto visual que ele anima.
Quando uma variável de animação é criada, seu valor inicial deve ser especificado. A partir daí, o seu valor só pode ser alterado através da programação de storyboards que o animem.
As variáveis de animação são passadas como parâmetros quando os storyboards são construídos, portanto, o aplicativo não deve liberá-los até que as características visuais que representam não precisem mais ser animadas, normalmente quando os objetos visuais associados estão prestes a ser destruídos.
Código de exemplo
Cores Animadas
O código de exemplo a seguir é retirado de MainWindow.cpp nos exemplos de Animação do Windows Application-Driven Animation e Timer-Driven Animation. No exemplo, três variáveis de animação são criadas usando CreateAnimationVariable para representar cores de plano de fundo. O código também usa o SetLowerBound e SetUpperBound métodos para controlar o valor da variável de animação.
const DOUBLE INITIAL_RED = COLOR_MAX;
const DOUBLE INITIAL_GREEN = COLOR_MAX;
const DOUBLE INITIAL_BLUE = COLOR_MAX;
HRESULT hr = m_pAnimationManager->CreateAnimationVariable(
INITIAL_RED,
&m_pAnimationVariableRed
);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableRed->SetLowerBound(COLOR_MIN);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableRed->SetUpperBound(COLOR_MAX);
if (SUCCEEDED(hr))
{
hr = m_pAnimationManager->CreateAnimationVariable(
INITIAL_GREEN,
&m_pAnimationVariableGreen
);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableGreen->SetLowerBound(COLOR_MIN);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableGreen->SetUpperBound(COLOR_MAX);
if (SUCCEEDED(hr))
{
hr = m_pAnimationManager->CreateAnimationVariable(
INITIAL_BLUE,
&m_pAnimationVariableBlue
);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableBlue->SetLowerBound(COLOR_MIN);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableBlue->SetUpperBound(COLOR_MAX);
}
}
}
}
}
}
}
}
Observe as seguintes definições de MainWindow.h.
class CMainWindow
{
...
private:
// Animated Variables
IUIAnimationVariable *m_pAnimationVariableRed;
IUIAnimationVariable *m_pAnimationVariableGreen;
IUIAnimationVariable *m_pAnimationVariableBlue;
...
};
Animando coordenadas x e y
O código de exemplo a seguir é retirado de Thumbnail.cpp no exemplo de layout de grade do Windows Animation ; consulte o método CMainWindow::CreateAnimationVariables. Duas variáveis de animação são criadas para representar as coordenadas X e Y de cada objeto.
// Create the animation variables for the x and y coordinates
hr = m_pAnimationManager->CreateAnimationVariable(
xInitial,
&m_pAnimationVariableX
);
if (SUCCEEDED(hr))
{
hr = m_pAnimationManager->CreateAnimationVariable(
yInitial,
&m_pAnimationVariableY
);
...
}
Observe as seguintes definições de Thumbnail.h.
class CThumbnail
{
public:
...
// X and Y Animation Variables
IUIAnimationVariable *m_pAnimationVariableX;
IUIAnimationVariable *m_pAnimationVariableY;
...
};
As variáveis de animação são números de vírgula flutuante, mas seus valores também podem ser obtidos como inteiros. Por padrão, cada valor será arredondado para o número inteiro mais próximo, mas é possível substituir o modo de arredondamento usado para uma variável. O código de exemplo a seguir usa o método SetRoundingMode para especificar que os valores devem ser sempre arredondados para baixo.
hr = m_pAnimationVariableX->SetRoundingMode(
UI_ANIMATION_ROUNDING_MODE_FLOOR
);
if (SUCCEEDED(hr))
{
hr = m_pAnimationVariableY->SetRoundingMode(
UI_ANIMATION_ROUNDING_MODE_FLOOR
);
...
}
Etapa anterior
Antes de iniciar esta etapa, você deve ter concluído esta etapa: Criar os objetos de animação principais.
Próximo Passo
Depois de concluir esta etapa, a próxima etapa é: Atualizar o Gerenciador de Animação e Desenhar Quadros.
Tópicos relacionados