IDCompositionAnimation::AddRepeat-Methode (dcompanimation.h)
Fügt ein wiederholtes Segment hinzu, das dazu führt, dass der angegebene Teil einer Animationsfunktion wiederholt wird.
Syntax
HRESULT AddRepeat(
[in] double beginOffset,
[in] double durationToRepeat
);
Parameter
[in] beginOffset
Typ: double
Der Offset in Sekunden vom Anfang der Animation bis zum Punkt, an dem die Wiederholung beginnen soll.
[in] durationToRepeat
Typ: double
Die Dauer eines Teils der Animation in Sekunden, der unmittelbar vor der von beginOffset angegebenen Startzeit liegt. Dies ist der Teil, der wiederholt wird.
Rückgabewert
Typ: HRESULT
Wenn die Funktion erfolgreich ist, gibt sie S_OK zurück. Andernfalls wird ein Fehlercode HRESULT zurückgegeben. Eine Liste der Fehlercodes finden Sie unter DirectComposition-Fehlercodes .
Hinweise
Diese Methode schlägt fehl, wenn einer der Parameter NaN, positive Unendlichkeit oder negative Unendlichkeit ist.
Da Animationssegmente in zunehmender Reihenfolge hinzugefügt werden müssen, schlägt diese Methode fehl, wenn der beginOffset-Parameter kleiner oder gleich dem beginOffset-Parameter des vorherigen Segments ist. Diese Methode schlägt auch fehl, wenn dies das erste Segment ist, das der Animationsfunktion hinzugefügt wird.
Dieses Animationssegment bleibt bis zur Anfangszeit des nächsten Segments wirksam. Wenn die Animationsfunktion keine weiteren Segmente enthält, bleibt dieses Segment auf unbestimmte Zeit wirksam.
Beispiele
Im folgenden Beispiel wird eine Animationsfunktion erstellt, die ein Wiederholungssegment enthält, und wendet die Animation auf die x- und y-Achsen einer Skalierungstransformation an.
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;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 8 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2012 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | dcompanimation.h |
Bibliothek | Dcomp.lib |
DLL | Dcomp.dll |