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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk