Bagikan melalui


Kelas CAnimationController

Mengimplementasikan pengontrol animasi, yang menyediakan antarmuka pusat untuk membuat dan mengelola animasi.

Sintaks

class CAnimationController : public CObject;

Anggota

Konstruktor Publik

Nama Deskripsi
CAnimationController::CAnimationController Membuat pengontrol animasi.
CAnimationController::~CAnimationController Destruktor. Dipanggil ketika objek pengontrol animasi sedang dihancurkan.

Metode Publik

Nama Deskripsi
CAnimationController::AddAnimationObject Menambahkan objek animasi ke grup yang termasuk dalam pengontrol animasi.
CAnimationController::AddKeyframeToGroup Menambahkan keyframe ke grup.
CAnimationController::AnimateGroup Menyiapkan grup untuk menjalankan animasi dan secara opsional menjadwalkannya.
CAnimationController::CleanUpGroup Kelebihan beban. Dipanggil oleh kerangka kerja untuk membersihkan grup ketika animasi telah dijadwalkan.
CAnimationController::CreateKeyframe Kelebihan beban. Membuat keyframe yang bergantung pada transisi dan menambahkannya ke grup yang ditentukan.
CAnimationController::EnableAnimationManagerEvent Mengatur atau merilis handler untuk dipanggil saat status manajer animasi berubah.
CAnimationController::EnableAnimationTimerEventHandler Mengatur atau merilis handler untuk peristiwa waktu dan handler untuk pembaruan waktu.
CAnimationController::EnablePriorityComparisonHandler Mengatur atau merilis handler perbandingan prioritas untuk dipanggil untuk menentukan apakah papan cerita terjadwal dapat dibatalkan, disimpulkan, dipangkas, atau dikompresi.
CAnimationController::EnableStoryboardEventHandler Mengatur atau merilis handler untuk status papan cerita dan memperbarui peristiwa.
CAnimationController::FindAnimationGroup Kelebihan beban. Menemukan grup animasi menurut papan ceritanya.
CAnimationController::FindAnimationObject Menemukan objek animasi yang berisi variabel animasi tertentu.
CAnimationController::GetKeyframeStoryboardStart Mengembalikan keyframe yang mengidentifikasi awal papan cerita.
CAnimationController::GetUIAnimationManager Menyediakan akses ke objek IUIAnimationManager yang dienkapsulasi.
CAnimationController::GetUIAnimationTimer Menyediakan akses ke objek IUIAnimationTimer yang dienkapsulasi.
CAnimationController::GetUITransitionFactory Penunjuk ke antarmuka IUIAnimationTransitionFactory atau NULL, jika pembuatan pustaka transisi gagal.
CAnimationController::GetUITransitionLibrary Menyediakan akses ke objek IUIAnimationTransitionLibrary yang dienkapsulasi.
CAnimationController::IsAnimationInProgress Memberi tahu apakah setidaknya satu grup sedang memutar animasi.
CAnimationController::IsValid Memberi tahu apakah pengontrol animasi valid.
CAnimationController::OnAnimationIntegerValueChanged Dipanggil oleh kerangka kerja ketika nilai bilangan bulat variabel animasi telah berubah.
CAnimationController::OnAnimationManagerStatusChanged Dipanggil oleh kerangka kerja sebagai respons terhadap peristiwa StatusChanged dari manajer animasi.
CAnimationController::OnAnimationTimerPostUpdate Dipanggil oleh kerangka kerja setelah pembaruan animasi selesai.
CAnimationController::OnAnimationTimerPreUpdate Dipanggil oleh kerangka kerja sebelum pembaruan animasi dimulai.
CAnimationController::OnAnimationTimerRenderingTooSlow Dipanggil oleh kerangka kerja ketika kecepatan bingkai penyajian untuk animasi berada di bawah kecepatan bingkai minimum yang diinginkan.
CAnimationController::OnAnimationValueChanged Dipanggil oleh kerangka kerja ketika nilai variabel animasi telah berubah.
CAnimationController::OnBeforeAnimationStart Dipanggil oleh kerangka kerja tepat sebelum animasi dijadwalkan.
CAnimationController::OnHasPriorityCancel Dipanggil oleh kerangka kerja untuk mengatasi konflik penjadwalan.
CAnimationController::OnHasPriorityCompress Dipanggil oleh kerangka kerja untuk mengatasi konflik penjadwalan.
CAnimationController::OnHasPriorityConclude Dipanggil oleh kerangka kerja untuk mengatasi konflik penjadwalan.
CAnimationController::OnHasPriorityTrim Dipanggil oleh kerangka kerja untuk mengatasi konflik penjadwalan.
CAnimationController::OnStoryboardStatusChanged Dipanggil oleh kerangka kerja ketika status papan cerita telah berubah.
CAnimationController::OnStoryboardUpdated Dipanggil oleh kerangka kerja ketika papan cerita telah diperbarui.
CAnimationController::RemoveAllAnimationGroups Menghapus semua grup animasi dari pengontrol animasi.
CAnimationController::RemoveAnimationGroup Menghapus grup animasi dengan ID yang ditentukan dari pengontrol animasi.
CAnimationController::RemoveAnimationObject Hapus objek animasi dari pengontrol animasi.
CAnimationController::RemoveTransitions Menghapus transisi dari objek animasi yang termasuk dalam grup yang ditentukan.
CAnimationController::ScheduleGroup Menjadwalkan animasi.
CAnimationController::SetRelatedWnd Membangun hubungan antara pengontrol animasi dan jendela.
CAnimationController::UpdateAnimationManager Mengarahkan manajer animasi untuk memperbarui nilai semua variabel animasi.

Metode yang Dilindungi

Nama Deskripsi
CAnimationController::CleanUpGroup Kelebihan beban. Pembantu yang membersihkan grup.
CAnimationController::OnAfterSchedule Dipanggil oleh kerangka kerja ketika animasi untuk grup yang ditentukan baru saja dijadwalkan.

Anggota Data yang Dilindungi

Nama Deskripsi
CAnimationController::gkeyframeStoryboardStart Keyframe yang mewakili awal papan cerita.
CAnimationController::m_bIsValid Menentukan apakah pengontrol animasi valid atau tidak. Anggota ini diatur ke FALSE jika OS saat ini tidak mendukung Windows Animation API.
CAnimationController::m_lstAnimationGroups Daftar grup animasi yang termasuk dalam pengontrol animasi ini.
CAnimationController::m_pAnimationManager Menyimpan penunjuk ke objek COM Manajer Animasi.
CAnimationController::m_pAnimationTimer Menyimpan penunjuk ke objek COM Pengawas Animasi.
CAnimationController::m_pRelatedWnd Penunjuk ke objek CWnd terkait, yang dapat secara otomatis digambar ulang ketika status manajer animasi telah berubah, atau peristiwa pembaruan pasca terjadi. Bisa NULL.
CAnimationController::m_pTransitionFactory Menyimpan penunjuk ke objek COM Transition Factory.
CAnimationController::m_pTransitionLibrary Menyimpan penunjuk ke objek COM Pustaka Transisi.

Keterangan

Kelas CAnimationController adalah kelas kunci yang mengelola animasi. Anda dapat membuat satu atau beberapa instans pengontrol animasi dalam aplikasi dan, secara opsional, menghubungkan instans pengontrol animasi ke objek CWnd menggunakan CAnimationController::SetRelatedWnd. Koneksi ini diperlukan untuk mengirim pesan WM_PAINT ke jendela terkait secara otomatis ketika status manajer animasi telah berubah atau timer animasi telah diperbarui. Jika Anda tidak mengaktifkan relasi ini, Anda harus menggambar ulang jendela yang menampilkan animasi secara manual. Untuk tujuan ini, Anda dapat memperoleh kelas dari CAnimationController dan mengambil alih OnAnimationManagerStatusChanged dan/atau OnAnimationTimerPostUpdate dan membatalkan satu atau beberapa jendela jika perlu.

Hierarki Warisan

CObject

CAnimationController

Persyaratan

Header: afxanimationcontroller.h

CAnimationController::~CAnimationController

Destruktor. Dipanggil ketika objek pengontrol animasi sedang dihancurkan.

virtual ~CAnimationController(void);

CAnimationController::AddAnimationObject

Menambahkan objek animasi ke grup yang termasuk dalam pengontrol animasi.

CAnimationGroup* AddAnimationObject(CAnimationBaseObject* pObject);

Parameter

pObject
Penunjuk ke objek animasi.

Tampilkan Nilai

Penunjuk ke grup animasi yang sudah ada atau baru di mana pObject telah ditambahkan jika fungsi berhasil; NULL jika pObject telah ditambahkan ke grup milik pengontrol animasi lain.

Keterangan

Panggil metode ini untuk menambahkan objek animasi ke pengontrol animasi. Objek akan ditambahkan ke grup sesuai dengan GroupID objek (lihat CAnimationBaseObject::SetID). Pengontrol animasi akan membuat grup baru jika merupakan objek pertama yang ditambahkan dengan GroupID yang ditentukan. Objek animasi hanya dapat ditambahkan ke satu pengontrol animasi. Jika Anda perlu menambahkan objek ke pengontrol lain, hubungi RemoveAnimationObject terlebih dahulu. Jika Anda memanggil SetID dengan GroupID baru untuk objek yang telah ditambahkan ke grup, objek akan dihapus dari grup lama dan ditambahkan ke grup lain dengan ID yang ditentukan.

CAnimationController::AddKeyframeToGroup

Menambahkan keyframe ke grup.

BOOL AddKeyframeToGroup(
    UINT32 nGroupID,
    CBaseKeyFrame* pKeyframe);

Parameter

nGroupID
Menentukan ID Grup.

pKeyframe
Penunjuk ke keyframe.

Tampilkan Nilai

TRUE jika fungsi berhasil; jika tidak FALSE.

Keterangan

Biasanya Anda tidak perlu memanggil metode ini, gunakan CAnimationController::CreateKeyframe sebagai gantinya, yang membuat dan menambahkan keyframe yang dibuat ke grup secara otomatis.

CAnimationController::AnimateGroup

Menyiapkan grup untuk menjalankan animasi dan secara opsional menjadwalkannya.

BOOL AnimateGroup(
    UINT32 nGroupID,
    BOOL bScheduleNow = TRUE);

Parameter

nGroupID
Menentukan GroupID.

bScheduleNow
Menentukan apakah akan segera menjalankan animasi.

Tampilkan Nilai

TRUE jika animasi berhasil dijadwalkan dan dijalankan.

Keterangan

Metode ini melakukan pekerjaan aktual membuat papan cerita, menambahkan variabel animasi, menerapkan transisi dan mengatur keyframe. Dimungkinkan untuk menunda penjadwalan jika Anda mengatur bScheduleNow ke FALSE. Dalam hal ini grup yang ditentukan akan menyimpan papan cerita yang telah disiapkan untuk animasi. Pada saat itu Anda dapat mengatur peristiwa untuk papan cerita dan variabel animasi. Ketika Anda benar-benar perlu menjalankan panggilan animasi CAnimationController::ScheduleGroup.

CAnimationController::CAnimationController

Membuat pengontrol animasi.

CAnimationController(void);

CAnimationController::CleanUpGroup

Dipanggil oleh kerangka kerja untuk membersihkan grup ketika animasi telah dijadwalkan.

void CleanUpGroup(UINT32 nGroupID);
void CleanUpGroup(CAnimationGroup* pGroup);

Parameter

nGroupID
Menentukan GroupID.

pGroup
Penunjuk ke grup animasi untuk dibersihkan.

Keterangan

Metode ini menghapus semua transisi dan keyframe dari grup yang ditentukan, karena tidak relevan setelah animasi dijadwalkan.

CAnimationController::CreateKeyframe

Membuat keyframe yang bergantung pada transisi dan menambahkannya ke grup yang ditentukan.

CKeyFrame* CreateKeyframe(
    UINT32 nGroupID,
    CBaseTransition* pTransition);

CKeyFrame* CreateKeyframe(
    UINT32 nGroupID,
    CBaseKeyFrame* pKeyframe,
    UI_ANIMATION_SECONDS offset = 0.0);

Parameter

nGroupID
Menentukan ID Grup yang keyframe-nya dibuat.

pTransisi
Penunjuk ke transisi. Keyframe akan dimasukkan ke papan cerita setelah transisi ini.

pKeyframe
Pointer ke keyframe dasar untuk keyframe ini.

offset
Offset dalam detik dari keyframe dasar yang ditentukan oleh pKeyframe.

Tampilkan Nilai

Penunjuk ke keyframe yang baru dibuat jika fungsi berhasil.

Keterangan

Anda dapat menyimpan pointer yang dikembalikan dan mendasarkan keyframe lain pada keyframe yang baru dibuat (lihat kelebihan beban kedua). Dimungkinkan untuk memulai transisi di keyframe - lihat CBaseTransition::SetKeyframes. Anda tidak perlu menghapus keyframe yang dibuat dengan cara ini, karena dihapus secara otomatis oleh grup animasi. Berhati-hatilah saat membuat keyframe berdasarkan keyframe dan transisi lainnya dan hindari referensi melingkar.

CAnimationController::EnableAnimationManagerEvent

Mengatur atau merilis handler untuk dipanggil saat status manajer animasi berubah.

virtual BOOL EnableAnimationManagerEvent(BOOL bEnable = TRUE);

Parameter

bEnable
Menentukan apakah akan mengatur atau merilis handler.

Tampilkan Nilai

TRUE jika handler berhasil diatur atau dirilis.

Keterangan

Ketika handler diatur (diaktifkan) Windows Animation memanggil OnAnimationManagerStatusChanged saat status manajer animasi berubah.

CAnimationController::EnableAnimationTimerEventHandler

Mengatur atau merilis handler untuk peristiwa waktu dan handler untuk pembaruan waktu.

virtual BOOL EnableAnimationTimerEventHandler(
    BOOL bEnable = TRUE,
    UI_ANIMATION_IDLE_BEHAVIOR idleBehavior = UI_ANIMATION_IDLE_BEHAVIOR_DISABLE);

Parameter

bEnable
Menentukan apakah akan mengatur atau melepaskan handler.

idleBehavior
Menentukan perilaku menganggur untuk penangan pembaruan timer.

Tampilkan Nilai

TRUE jika handler berhasil diatur atau dirilis; FALSE jika metode ini dipanggil untuk kedua kalinya tanpa merilis handler terlebih dahulu, atau jika terjadi kesalahan lain.

Keterangan

Ketika handler diatur (diaktifkan) Windows Animation API memanggil metode OnAnimationTimerPreUpdate, OnAnimationTimerPostUpdate, OnRenderingTooSlow. Anda perlu mengaktifkan timer animasi untuk mengizinkan papan cerita pembaruan Windows Animation API. Jika tidak, Anda harus memanggil CAnimationController::UpdateAnimationManager untuk mengarahkan manajer animasi untuk memperbarui nilai semua variabel animasi.

CAnimationController::EnablePriorityComparisonHandler

Mengatur atau merilis handler perbandingan prioritas untuk dipanggil untuk menentukan apakah papan cerita terjadwal dapat dibatalkan, disimpulkan, dipangkas, atau dikompresi.

virtual BOOL EnablePriorityComparisonHandler(DWORD dwHandlerType);

Parameter

dwHandlerType
Kombinasi bendera UI_ANIMATION_PHT_ (lihat komentar), yang menentukan penangan apa yang akan diatur atau dilepaskan.

Tampilkan Nilai

TRUE jika handler berhasil diatur atau dirilis.

Keterangan

Ketika handler diatur (diaktifkan) Windows Animation memanggil metode virtual berikut tergantung pada dwHandlerType: OnHasPriorityCancel, OnHasPriorityConclude, OnHasPriorityTrim, OnHasPriorityCompress. dwHandler dapat menjadi kombinasi dari bendera berikut: UI_ANIMATION_PHT_NONE - lepaskan semua handler UI_ANIMATION_PHT_CANCEL - atur Batalkan perbandingan handler UI_ANIMATION_PHT_CONCLUDE - atur Handler perbandingan akhir UI_ANIMATION_PHT_COMPRESS - set Kompres handler perbandingan UI_ANIMATION_PHT_TRIM - atur handler perbandingan pangkas UI_ANIMATION_PHT_CANCEL_REMOVE - hapus handler perbandingan Batal UI_ANIMATION_PHT_CONCLUDE_REMOVE - hapus handler perbandingan Akhiri UI_ANIMATION_PHT_COMPRESS_REMOVE - hapus handler kompres perbandingan UI_ANIMATION_PHT_TRIM_REMOVE - hapus handler perbandingan Pangkas

CAnimationController::EnableStoryboardEventHandler

Mengatur atau merilis handler untuk status papan cerita dan memperbarui peristiwa.

virtual BOOL EnableStoryboardEventHandler(
    UINT32 nGroupID,
    BOOL bEnable = TRUE);

Parameter

nGroupID
Menentukan ID Grup.

bEnable
Menentukan apakah akan mengatur atau merilis handler.

Tampilkan Nilai

TRUE jika handler berhasil diatur atau dirilis; FALSE jika grup animasi yang ditentukan sekarang ditemukan atau animasi untuk grup yang ditentukan belum dimulai dan papan cerita internalnya adalah NULL.

Keterangan

Ketika handler diatur (diaktifkan) Windows Animation API memanggil metode virtual OnStoryboardStatusChanges dan OnStoryboardUpdated. Handler harus diatur setelah CAnimationController::Animate dipanggil untuk grup animasi yang ditentukan, karena membuat objek IUIAnimationStoryboard yang dienkapsulasi.

CAnimationController::FindAnimationGroup

Menemukan grup animasi menurut ID Grupnya.

CAnimationGroup* FindAnimationGroup(UINT32 nGroupID);
CAnimationGroup* FindAnimationGroup(IUIAnimationStoryboard* pStoryboard);

Parameter

nGroupID
Menentukan GroupID.

pStoryboard
Penunjuk ke papan cerita.

Tampilkan Nilai

Penunjuk ke grup animasi atau NULL jika grup dengan ID yang ditentukan tidak ditemukan.

Keterangan

Gunakan metode ini untuk menemukan grup animasi saat runtime. Grup dibuat dan ditambahkan ke daftar internal grup animasi saat objek animasi pertama dengan GroupID tertentu ditambahkan ke pengontrol animasi.

CAnimationController::FindAnimationObject

Menemukan objek animasi yang berisi variabel animasi tertentu.

BOOL FindAnimationObject(
    IUIAnimationVariable* pVariable,
    CAnimationBaseObject** ppObject,
    CAnimationGroup** ppGroup);

Parameter

pVariable
Penunjuk ke variabel animasi.

ppObject
Output. Berisi penunjuk ke objek animasi atau NULL.

ppGroup
Output. Berisi penunjuk ke grup animasi yang menyimpan objek animasi, atau NULL.

Tampilkan Nilai

TRUE jika objek ditemukan; jika tidak FALSE.

Keterangan

Dipanggil dari penanganan aktivitas ketika diperlukan untuk menemukan objek animasi dari variabel animasi masuk.

CAnimationController::gkeyframeStoryboardStart

Keyframe yang mewakili awal papan cerita.

static CBaseKeyFrame gkeyframeStoryboardStart;

CAnimationController::GetKeyframeStoryboardStart

Mengembalikan keyframe yang mengidentifikasi awal papan cerita.

static CBaseKeyFrame* GetKeyframeStoryboardStart();

Tampilkan Nilai

Pointer ke keyframe dasar, yang mengidentifikasi awal papan cerita.

Keterangan

Dapatkan keyframe ini untuk mendasarkan keyframe atau transisi lain pada saat ketika papan cerita dimulai.

CAnimationController::GetUIAnimationManager

Menyediakan akses ke objek IUIAnimationManager yang dienkapsulasi.

IUIAnimationManager* GetUIAnimationManager();

Tampilkan Nilai

Penunjuk ke antarmuka IUIAnimationManager atau NULL, jika pembuatan manajer animasi gagal.

Keterangan

Jika OS saat ini tidak mendukung Windows Animation API, metode ini mengembalikan NULL dan setelah itu semua panggilan berikutnya di CAnimationController::IsValid mengembalikan FALSE. Anda mungkin perlu mengakses IUIAnimationManager untuk memanggil metode antarmukanya, yang tidak dibungkus oleh pengontrol animasi.

CAnimationController::GetUIAnimationTimer

Menyediakan akses ke objek IUIAnimationTimer yang dienkapsulasi.

IUIAnimationTimer* GetUIAnimationTimer();

Tampilkan Nilai

Penunjuk ke antarmuka IUIAnimationTimer atau NULL, jika pembuatan timer animasi gagal.

Keterangan

Jika OS saat ini tidak mendukung Windows Animation API, metode ini mengembalikan NULL dan setelah itu semua panggilan berikutnya di CAnimationController::IsValid mengembalikan FALSE.

CAnimationController::GetUITransitionFactory

Penunjuk ke antarmuka IUIAnimationTransitionFactory atau NULL, jika pembuatan pustaka transisi gagal.

IUIAnimationTransitionFactory* GetUITransitionFactory();

Tampilkan Nilai

Pointer ke IUIAnimationTransitionFactory atau NULL, jika pembuatan pabrik transisi gagal.

Keterangan

Jika OS saat ini tidak mendukung Windows Animation API, metode ini mengembalikan NULL dan setelah itu semua panggilan berikutnya di CAnimationController::IsValid mengembalikan FALSE.

CAnimationController::GetUITransitionLibrary

Menyediakan akses ke objek IUIAnimationTransitionLibrary yang dienkapsulasi.

IUIAnimationTransitionLibrary* GetUITransitionLibrary();

Tampilkan Nilai

Penunjuk ke antarmuka IUIAnimationTransitionLibrary atau NULL, jika pembuatan pustaka transisi gagal.

Keterangan

Jika OS saat ini tidak mendukung Windows Animation API, metode ini mengembalikan NULL dan setelah itu semua panggilan berikutnya di CAnimationController::IsValid mengembalikan FALSE.

CAnimationController::IsAnimationInProgress

Memberi tahu apakah setidaknya satu grup sedang memutar animasi.

virtual BOOL IsAnimationInProgress();

Tampilkan Nilai

TRUE jika ada animasi yang sedang berlangsung untuk pengontrol animasi ini; jika tidak FALSE.

Keterangan

Memeriksa status manajer animasi dan mengembalikan TRUE jika statusnya UI_ANIMATION_MANAGER_BUSY.

CAnimationController::IsValid

Memberi tahu apakah pengontrol animasi valid.

BOOL IsValid() const;

Tampilkan Nilai

TRUE jika pengontrol animasi valid; jika tidak FALSE.

Keterangan

Metode ini mengembalikan FALSE hanya jika WINDOWS Animation API tidak didukung pada OS saat ini dan pembuatan manajer animasi gagal karena tidak terdaftar. Anda perlu memanggil GetUIAnimationManager setidaknya sekali setelah inisialisasi pustaka COM untuk menyebabkan pengaturan bendera ini.

CAnimationController::m_bIsValid

Menentukan apakah pengontrol animasi valid atau tidak. Anggota ini diatur ke FALSE jika OS saat ini tidak mendukung Windows Animation API.

BOOL m_bIsValid;

CAnimationController::m_lstAnimationGroups

Daftar grup animasi yang termasuk dalam pengontrol animasi ini.

CList<CAnimationGroup*, CAnimationGroup*> m_lstAnimationGroups;

CAnimationController::m_pAnimationManager

Menyimpan penunjuk ke objek COM Manajer Animasi.

ATL::CComPtr<IUIAnimationManager> m_pAnimationManager;

CAnimationController::m_pAnimationTimer

Menyimpan penunjuk ke objek COM Pengawas Animasi.

ATL::CComPtr<IUIAnimationTimer> m_pAnimationTimer;

CAnimationController::m_pRelatedWnd

Penunjuk ke objek CWnd terkait, yang dapat secara otomatis digambar ulang ketika status manajer animasi telah berubah, atau peristiwa pembaruan pasca terjadi. Bisa NULL.

CWnd* m_pRelatedWnd;

CAnimationController::m_pTransitionFactory

Menyimpan penunjuk ke objek COM Transition Factory.

ATL::CComPtr<IUIAnimationTransitionFactory> m_pTransitionFactory;

CAnimationController::m_pTransitionLibrary

Menyimpan penunjuk ke objek COM Pustaka Transisi.

ATL::CComPtr<IUIAnimationTransitionLibrary> m_pTransitionLibrary;

CAnimationController::OnAfterSchedule

Dipanggil oleh kerangka kerja ketika animasi untuk grup yang ditentukan baru saja dijadwalkan.

virtual void OnAfterSchedule(CAnimationGroup* pGroup);

Parameter

pGroup
Penunjuk ke grup animasi, yang telah dijadwalkan.

Keterangan

Implementasi default menghapus keyframe dari grup dan transisi yang ditentukan dari variabel animasi yang termasuk dalam grup yang ditentukan. Dapat ditimpa di kelas turunan untuk mengambil tindakan tambahan apa pun pada jadwal animasi.

CAnimationController::OnAnimationIntegerValueChanged

Dipanggil oleh kerangka kerja ketika nilai bilangan bulat variabel animasi telah berubah.

virtual void OnAnimationIntegerValueChanged(
    CAnimationGroup* pGroup,
    CAnimationBaseObject* pObject,
    IUIAnimationVariable* variable,
    INT32 newValue,
    INT32 prevValue);

Parameter

pGroup
Penunjuk ke grup animasi yang menyimpan objek animasi yang nilainya telah berubah.

pObject
Penunjuk ke objek animasi yang berisi variabel animasi yang nilainya telah berubah.

variabel
Penunjuk ke variabel animasi.

nilainilai baru
Menentukan nilai baru.

prevValue
Menentukan nilai sebelumnya.

Keterangan

Metode ini dipanggil jika Anda mengaktifkan peristiwa variabel animasi dengan EnableIntegerValueChangedEvent yang dipanggil untuk variabel animasi atau objek animasi tertentu. Ini dapat ditimpa dalam kelas turunan untuk mengambil tindakan khusus aplikasi.

CAnimationController::OnAnimationManagerStatusChanged

Dipanggil oleh kerangka kerja sebagai respons terhadap peristiwa StatusChanged dari manajer animasi.

virtual void OnAnimationManagerStatusChanged(
    UI_ANIMATION_MANAGER_STATUS newStatus,
    UI_ANIMATION_MANAGER_STATUS previousStatus);

Parameter

newStatus
Status manajer animasi baru.

previousStatus
Status manajer animasi sebelumnya.

Keterangan

Metode ini dipanggil jika Anda mengaktifkan peristiwa manajer animasi dengan EnableAnimationManagerEvent. Ini dapat ditimpa dalam kelas turunan untuk mengambil tindakan khusus aplikasi. Implementasi default memperbarui jendela terkait jika telah diatur dengan SetRelatedWnd.

CAnimationController::OnAnimationTimerPostUpdate

Dipanggil oleh kerangka kerja setelah pembaruan animasi selesai.

virtual void OnAnimationTimerPostUpdate();

Keterangan

Metode ini dipanggil jika Anda mengaktifkan penanganan aktivitas pengatur waktu menggunakan EnableAnimationTimerEventHandler. Ini dapat ditimpa dalam kelas turunan untuk mengambil tindakan khusus aplikasi.

CAnimationController::OnAnimationTimerPreUpdate

Dipanggil oleh kerangka kerja sebelum pembaruan animasi dimulai.

virtual void OnAnimationTimerPreUpdate();

Keterangan

Metode ini dipanggil jika Anda mengaktifkan penanganan aktivitas pengatur waktu menggunakan EnableAnimationTimerEventHandler. Ini dapat ditimpa dalam kelas turunan untuk mengambil tindakan khusus aplikasi.

CAnimationController::OnAnimationTimerRenderingTooSlow

Dipanggil oleh kerangka kerja ketika kecepatan bingkai penyajian untuk animasi berada di bawah kecepatan bingkai minimum yang diinginkan.

virtual void OnAnimationTimerRenderingTooSlow(UINT32 fps);

Parameter

Fps
Kecepatan bingkai saat ini dalam bingkai per detik.

Keterangan

Metode ini dipanggil jika Anda mengaktifkan penanganan aktivitas pengatur waktu menggunakan EnableAnimationTimerEventHandler. Ini dapat ditimpa dalam kelas turunan untuk mengambil tindakan khusus aplikasi. Kecepatan bingkai minimum yang diinginkan ditentukan dengan memanggil IUIAnimationTimer::SetFrameRateThreshold.

CAnimationController::OnAnimationValueChanged

Dipanggil oleh kerangka kerja ketika nilai variabel animasi telah berubah.

virtual void OnAnimationValueChanged(
    CAnimationGroup* pGroup,
    CAnimationBaseObject* pObject,
    IUIAnimationVariable* variable,
    DOUBLE newValue,
    DOUBLE prevValue);

Parameter

pGroup
Penunjuk ke grup animasi yang menyimpan objek animasi yang nilainya telah berubah.

pObject
Penunjuk ke objek animasi yang berisi variabel animasi yang nilainya telah berubah.

variabel
Penunjuk ke variabel animasi.

nilainilai baru
Menentukan nilai baru.

prevValue
Menentukan nilai sebelumnya.

Keterangan

Metode ini dipanggil jika Anda mengaktifkan peristiwa variabel animasi dengan EnableValueChangedEvent yang dipanggil untuk variabel animasi atau objek animasi tertentu. Ini dapat ditimpa dalam kelas turunan untuk mengambil tindakan khusus aplikasi.

CAnimationController::OnBeforeAnimationStart

Dipanggil oleh kerangka kerja tepat sebelum animasi dijadwalkan.

virtual void OnBeforeAnimationStart(CAnimationGroup* pGroup);

Parameter

pGroup
Penunjuk ke grup animasi yang animasinya akan dimulai.

Keterangan

Panggilan ini dirutekan ke CWnd terkait dan dapat ditimpa di kelas turunan untuk melakukan tindakan tambahan sebelum animasi dimulai untuk grup yang ditentukan.

CAnimationController::OnHasPriorityCancel

Dipanggil oleh kerangka kerja untuk mengatasi konflik penjadwalan.

virtual BOOL OnHasPriorityCancel(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parameter

pGroupScheduled
Grup yang memiliki papan cerita terjadwal saat ini.

pGroupNew
Grup yang memiliki papan cerita baru yang sedang menjadwalkan konflik dengan papan cerita terjadwal yang dimiliki oleh pGroupScheduled.

priorityEffect
Efek potensial pada pGroupNew jika pGroupScheduled memiliki prioritas yang lebih tinggi.

Tampilkan Nilai

Harus mengembalikan TRUE jika storyboard yang dimiliki oleh pGroupNew memiliki prioritas. Harus mengembalikan FALSE jika storyboard yang dimiliki oleh pGroupScheduled memiliki prioritas.

Keterangan

Metode ini dipanggil jika Anda mengaktifkan peristiwa perbandingan prioritas menggunakan CAnimationController::EnablePriorityComparisonHandler dan menentukan UI_ANIMATION_PHT_CANCEL. Ini dapat ditimpa dalam kelas turunan untuk mengambil tindakan khusus aplikasi. Baca dokumentasi WINDOWS Animation API untuk informasi selengkapnya tentang Manajemen Konflik.

CAnimationController::OnHasPriorityCompress

Dipanggil oleh kerangka kerja untuk mengatasi konflik penjadwalan.

virtual BOOL OnHasPriorityCompress(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parameter

pGroupScheduled
Grup yang memiliki papan cerita terjadwal saat ini.

pGroupNew
Grup yang memiliki papan cerita baru yang sedang menjadwalkan konflik dengan papan cerita terjadwal yang dimiliki oleh pGroupScheduled.

priorityEffect
Efek potensial pada pGroupNew jika pGroupScheduled memiliki prioritas yang lebih tinggi.

Tampilkan Nilai

Harus mengembalikan TRUE jika storyboard yang dimiliki oleh pGroupNew memiliki prioritas. Harus mengembalikan FALSE jika storyboard yang dimiliki oleh pGroupScheduled memiliki prioritas.

Keterangan

Metode ini dipanggil jika Anda mengaktifkan peristiwa perbandingan prioritas menggunakan CAnimationController::EnablePriorityComparisonHandler dan menentukan UI_ANIMATION_PHT_COMPRESS. Ini dapat ditimpa dalam kelas turunan untuk mengambil tindakan khusus aplikasi. Baca dokumentasi WINDOWS Animation API untuk informasi selengkapnya tentang Manajemen Konflik.

CAnimationController::OnHasPriorityConclude

Dipanggil oleh kerangka kerja untuk mengatasi konflik penjadwalan.

virtual BOOL OnHasPriorityConclude(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parameter

pGroupScheduled
Grup yang memiliki papan cerita terjadwal saat ini.

pGroupNew
Grup yang memiliki papan cerita baru yang sedang menjadwalkan konflik dengan papan cerita terjadwal yang dimiliki oleh pGroupScheduled.

priorityEffect
Efek potensial pada pGroupNew jika pGroupScheduled memiliki prioritas yang lebih tinggi.

Tampilkan Nilai

Harus mengembalikan TRUE jika storyboard yang dimiliki oleh pGroupNew memiliki prioritas. Harus mengembalikan FALSE jika storyboard yang dimiliki oleh pGroupScheduled memiliki prioritas.

Keterangan

Metode ini dipanggil jika Anda mengaktifkan peristiwa perbandingan prioritas menggunakan CAnimationController::EnablePriorityComparisonHandler dan menentukan UI_ANIMATION_PHT_CONCLUDE. Ini dapat ditimpa dalam kelas turunan untuk mengambil tindakan khusus aplikasi. Baca dokumentasi WINDOWS Animation API untuk informasi selengkapnya tentang Manajemen Konflik.

CAnimationController::OnHasPriorityTrim

Dipanggil oleh kerangka kerja untuk mengatasi konflik penjadwalan.

virtual BOOL OnHasPriorityTrim(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parameter

pGroupScheduled
Grup yang memiliki papan cerita terjadwal saat ini.

pGroupNew
Grup yang memiliki papan cerita baru yang sedang menjadwalkan konflik dengan papan cerita terjadwal yang dimiliki oleh pGroupScheduled.

priorityEffect
Efek potensial pada pGroupNew jika pGroupScheduled memiliki prioritas yang lebih tinggi.

Tampilkan Nilai

Harus mengembalikan TRUE jika storyboard yang dimiliki oleh pGroupNew memiliki prioritas. Harus mengembalikan FALSE jika storyboard yang dimiliki oleh pGroupScheduled memiliki prioritas.

Keterangan

Metode ini dipanggil jika Anda mengaktifkan peristiwa perbandingan prioritas menggunakan CAnimationController::EnablePriorityComparisonHandler dan menentukan UI_ANIMATION_PHT_TRIM. Ini dapat ditimpa dalam kelas turunan untuk mengambil tindakan khusus aplikasi. Baca dokumentasi WINDOWS Animation API untuk informasi selengkapnya tentang Manajemen Konflik.

CAnimationController::OnStoryboardStatusChanged

Dipanggil oleh kerangka kerja ketika status papan cerita telah berubah.

virtual void OnStoryboardStatusChanged(
    CAnimationGroup* pGroup,
    UI_ANIMATION_STORYBOARD_STATUS newStatus,
    UI_ANIMATION_STORYBOARD_STATUS previousStatus);

Parameter

pGroup
Penunjuk ke grup animasi yang memiliki papan cerita yang statusnya telah berubah.

newStatus
Menentukan status baru.

previousStatus
Menentukan status sebelumnya.

Keterangan

Metode ini dipanggil jika Anda mengaktifkan peristiwa papan cerita menggunakan CAnimationController::EnableStoryboardEventHandler. Ini dapat ditimpa dalam kelas turunan untuk mengambil tindakan khusus aplikasi.

CAnimationController::OnStoryboardUpdated

Dipanggil oleh kerangka kerja ketika papan cerita telah diperbarui.

virtual void OnStoryboardUpdated(CAnimationGroup* pGroup);

Parameter

pGroup
Penunjuk ke grup yang memiliki papan cerita.

Keterangan

Metode ini dipanggil jika Anda mengaktifkan peristiwa papan cerita menggunakan CAnimationController::EnableStoryboardEventHandler. Ini dapat ditimpa dalam kelas turunan untuk mengambil tindakan khusus aplikasi.

CAnimationController::RemoveAllAnimationGroups

Menghapus semua grup animasi dari pengontrol animasi.

void RemoveAllAnimationGroups();

Keterangan

Semua grup akan dihapus, penunjuknya, jika disimpan di tingkat aplikasi, harus dibatalkan. Jika CAnimationGroup::m_bAutodestroyAnimationObjects untuk grup yang dihapus adalah TRUE, semua objek animasi yang termasuk dalam grup tersebut akan dihapus; jika tidak, referensi mereka ke pengontrol animasi induk akan diatur ke NULL dan dapat ditambahkan ke pengontrol lain.

CAnimationController::RemoveAnimationGroup

Menghapus grup animasi dengan ID yang ditentukan dari pengontrol animasi.

void RemoveAnimationGroup(UINT32 nGroupID);

Parameter

nGroupID
Menentukan ID grup animasi.

Keterangan

Metode ini menghapus grup animasi dari daftar grup internal dan menghapusnya, oleh karena itu jika Anda menyimpan penunjuk ke grup animasi tersebut, itu harus dibatalkan. Jika CAnimationGroup::m_bAutodestroyAnimationObjects TRUE, semua objek animasi yang termasuk dalam grup tersebut akan dihapus; jika tidak, referensi mereka ke pengontrol animasi induk akan diatur ke NULL dan dapat ditambahkan ke pengontrol lain.

CAnimationController::RemoveAnimationObject

Hapus objek animasi dari pengontrol animasi.

void RemoveAnimationObject(
    CAnimationBaseObject* pObject,
    BOOL bNoDelete = FALSE);

Parameter

pObject
Penunjuk ke objek animasi.

bNoDelete
Jika parameter ini TRUE, objek tidak akan dihapus saat dihapus.

Keterangan

Menghapus objek animasi dari pengontrol animasi dan grup animasi. Panggil fungsi ini jika objek tertentu tidak boleh dianimasikan lagi, atau jika Anda perlu memindahkan objek ke pengontrol animasi lain. Dalam kasus terakhir bNoDelete harus TRUE.

CAnimationController::RemoveTransitions

Menghapus transisi dari objek animasi yang termasuk dalam grup yang ditentukan.

void RemoveTransitions(UINT32 nGroupID);

Parameter

nGroupID
Menentukan ID Grup.

Keterangan

Grup mengulangi objek animasinya dan memanggil ClearTransitions(FALSE) untuk setiap objek animasi. Metode ini dipanggil oleh kerangka kerja setelah animasi dijadwalkan.

CAnimationController::ScheduleGroup

Menjadwalkan animasi.

BOOL ScheduleGroup(
    UINT32 nGroupID,
    UI_ANIMATION_SECONDS time = 0.0);

Parameter

nGroupID
Menentukan ID Grup animasi yang akan dijadwalkan.

time
Menentukan waktu untuk menjadwalkan.

Tampilkan Nilai

TRUE jika animasi berhasil dijadwalkan. FALSE jika papan cerita belum dibuat, atau terjadi kesalahan lainnya.

Keterangan

Anda harus memanggil AnimateGroup dengan parameter bScheduleNow diatur ke FALSE sebelum ScheduleGroup. Anda dapat menentukan waktu animasi yang diinginkan yang diperoleh dari IUIAnimationTimer::GetTime. Jika parameter waktu adalah 0,0, animasi dijadwalkan untuk waktu saat ini.

CAnimationController::SetRelatedWnd

Membangun hubungan antara pengontrol animasi dan jendela.

void SetRelatedWnd(CWnd* pWnd);

Parameter

pWnd
Penunjuk ke objek jendela yang akan diatur.

Keterangan

Jika objek CWnd terkait diatur, pengontrol animasi dapat memperbaruinya secara otomatis (mengirim pesan WM_PAINT) ketika status manajer animasi telah berubah atau peristiwa pembaruan pasca timer telah terjadi.

CAnimationController::UpdateAnimationManager

Mengarahkan manajer animasi untuk memperbarui nilai semua variabel animasi.

virtual void UpdateAnimationManager();

Keterangan

Memanggil metode ini memajukan manajer animasi ke waktu saat ini, mengubah status papan cerita seperlunya dan memperbarui variabel animasi apa pun ke nilai terinterpolasi yang sesuai. Secara internal metode ini memanggil IUIAnimationTimer::GetTime(timeNow) dan IUIAnimationManager::Update(timeNow). Ambil alih metode ini dalam kelas turunan untuk menyesuaikan perilaku ini.

Lihat juga

Kelas