Método IDCompositionAnimation::AddRepeat (dcompanimation.h)
Adiciona um segmento de repetição que faz com que a parte especificada de uma função de animação seja repetida.
Sintaxe
HRESULT AddRepeat(
[in] double beginOffset,
[in] double durationToRepeat
);
Parâmetros
[in] beginOffset
Tipo: duplo
O deslocamento, em segundos, desde o início da animação até o ponto em que a repetição deve começar.
[in] durationToRepeat
Tipo: duplo
A duração, em segundos, de uma parte da animação imediatamente anterior à hora de início especificada por beginOffset. Esta é a parte que será repetida.
Retornar valor
Tipo: HRESULT
Se a função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT. Consulte Códigos de Erro do DirectComposition para obter uma lista de códigos de erro.
Comentários
Esse método falhará se qualquer um dos parâmetros for NaN, infinito positivo ou infinito negativo.
Como os segmentos de animação devem ser adicionados em ordem crescente, esse método falhará se o parâmetro beginOffset for menor ou igual ao parâmetro beginOffset do segmento anterior. Esse método também falhará se este for o primeiro segmento a ser adicionado à função de animação.
Esse segmento de animação permanece em vigor até a hora de início do próximo segmento. Se a função de animação não contiver mais segmentos, esse segmento permanecerá em vigor indefinidamente.
Exemplos
O exemplo a seguir cria uma função de animação que inclui um segmento de repetição e aplica a animação aos eixos x e y de uma transformação de escala.
HRESULT MyCreateAnimatedScaleTransform(IDCompositionDevice *pDevice,
IDCompositionVisual *pVisual)
{
HRESULT hr = S_OK;
IDCompositionAnimation *pAnimation = nullptr;
IDCompositionScaleTransform *pScaleTransform = nullptr;
// Validate the pointers.
if (pDevice == nullptr || pVisual == nullptr)
return E_INVALIDARG;
// Create an animation object.
hr = pDevice->CreateAnimation(&pAnimation);
if (SUCCEEDED(hr))
{
// Add segments to the animation function.
pAnimation->AddCubic(0, 1, -0.5, 0, 0);
pAnimation->AddRepeat(3.0, 3.0);
pAnimation->End(10, .5);
// Create a scale transform object.
hr = pDevice->CreateScaleTransform(&pScaleTransform);
}
if (SUCCEEDED(hr))
{
// Apply the animation to the x and y axes of the scale transform.
pScaleTransform->SetScaleX(pAnimation);
pScaleTransform->SetScaleY(pAnimation);
// Apply the scale transform to the visual.
hr = pVisual->SetTransform(pScaleTransform);
}
if (SUCCEEDED(hr))
{
// Commit the composition for rendering.
hr = pDevice->Commit();
}
// Clean up.
SafeRelease(&pAnimation);
SafeRelease(&pScaleTransform);
return hr;
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2012 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | dcompanimation.h |
Biblioteca | Dcomp.lib |
DLL | Dcomp.dll |