IDCompositionAnimation::Metode AddRepeat (dcompanimation.h)

Menambahkan segmen pengulangan yang menyebabkan bagian yang ditentukan dari fungsi animasi diulang.

Sintaks

HRESULT AddRepeat(
  [in] double beginOffset,
  [in] double durationToRepeat
);

Parameter

[in] beginOffset

Jenis: ganda

Offset, dalam detik, dari awal animasi hingga titik di mana pengulangan harus dimulai.

[in] durationToRepeat

Jenis: ganda

Durasi, dalam detik, dari sebagian animasi segera mendahului waktu mulai yang ditentukan oleh beginOffset. Ini adalah bagian yang akan diulang.

Nilai kembali

Jenis: HRESULT

Jika fungsi berhasil, fungsi akan mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan. Lihat Kode Kesalahan DirectComposition untuk daftar kode kesalahan.

Keterangan

Metode ini gagal jika salah satu parameternya adalah NaN, infinity positif, atau infinity negatif.

Karena segmen animasi harus ditambahkan dalam urutan yang meningkat, metode ini gagal jika parameter beginOffset kurang dari atau sama dengan parameter beginOffset dari segmen sebelumnya. Metode ini juga gagal jika ini adalah segmen pertama yang ditambahkan ke fungsi animasi.

Segmen animasi ini tetap berlaku hingga waktu mulai segmen berikutnya. Jika fungsi animasi tidak berisi lebih banyak segmen, segmen ini tetap berlaku tanpa batas waktu.

Contoh

Contoh berikut membuat fungsi animasi yang menyertakan segmen berulang, dan menerapkan animasi ke sumbu x dan y dari transformasi skala.

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;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 8 [khusus aplikasi desktop]
Server minimum yang didukung Windows Server 2012 [hanya aplikasi desktop]
Target Platform Windows
Header dcompanimation.h
Pustaka Dcomp.lib
DLL Dcomp.dll

Lihat juga

IDCompositionAnimation