CAnimationGroup 類別
實作動畫群組,結合動畫分鏡腳本、動畫對象和轉換來定義動畫。
語法
class CAnimationGroup;
成員
公用建構函式
名稱 | 描述 |
---|---|
CAnimationGroup::CAnimationGroup | 建構動畫群組。 |
CAnimationGroup::~CAnimationGroup | 解構函式。 當動畫群組被終結時呼叫。 |
公用方法
名稱 | 描述 |
---|---|
CAnimationGroup::Animate | 建立群組的動畫。 |
CAnimationGroup::ApplyTransitions | 將轉換套用至動畫物件。 |
CAnimationGroup::FindAnimationObject | 尋找包含指定動畫變數的動畫物件。 |
CAnimationGroup::GetGroupID | 傳回 GroupID。 |
CAnimationGroup::RemoveKeyframes | 拿掉並選擇性地終結屬於動畫群組的所有主要畫面格。 |
CAnimationGroup::RemoveTransitions | 從屬於動畫群組的動畫物件中移除轉換。 |
CAnimationGroup::Schedule | 在指定的時間排程動畫。 |
CAnimationGroup::SetAutodestroyTransitions | 引導屬於群組的所有動畫物件會自動終結轉換。 |
受保護的方法
名稱 | 描述 |
---|---|
CAnimationGroup::AddKeyframes | 將主要畫面格新增至分鏡腳本的協助程式。 |
CAnimationGroup::AddTransitions | 將轉換新增至分鏡腳本的協助程式。 |
CAnimationGroup::CreateTransitions | 建立 COM 轉換對象的協助程式。 |
公用資料成員
名稱 | 描述 |
---|---|
CAnimationGroup::m_bAutoclearTransitions | 指定如何清除屬於群組的動畫物件轉換。 如果這個成員為TRUE,當已排程動畫時,會自動移除轉換。 否則,您必須手動移除轉換。 |
CAnimationGroup::m_bAutodestroyAnimationObjects | 指定如何終結動畫物件。 如果此參數為TRUE,動畫物件會在群組終結時自動終結。 否則,動畫對象必須手動終結。 預設值為 FALSE。 只有在所有屬於群組的動畫物件都以動態方式配置運算符 new 時,才將此值設定為 TRUE。 |
CAnimationGroup::m_bAutodestroyKeyframes | 指定如何終結主要畫面格。 如果此值為TRUE,則會移除並終結所有主要畫面格;否則,它們只會從清單中移除。 預設值為 TRUE。 |
CAnimationGroup::m_lstAnimationObjects | 包含動畫物件的清單。 |
CAnimationGroup::m_lstKeyFrames | 包含主要畫面格的清單。 |
CAnimationGroup::m_pStoryboard | 指向動畫分鏡腳本。 只有在 Animate 上呼叫之後,這個指標才有效。 |
受保護的資料成員
名稱 | 描述 |
---|---|
CAnimationGroup::m_nGroupID | 動畫群組的唯一標識碼。 |
CAnimationGroup::m_pParentController | 這個群組所屬之動畫控制器的指標。 |
備註
當您使用 CAnimationController::AddAnimationObject 新增動畫物件時,動畫群組會自動由動畫控制器 #CAnimationController 建立。 GroupID 會識別動畫群組,這通常被視為操作動畫群組的參數。 GroupID 取自要新增至新動畫群組的第一個動畫物件。 呼叫 CAnimationController::AnimateGroup 之後,會建立封裝的動畫分鏡腳本,並可透過公用成員m_pStoryboard存取。
繼承階層架構
CAnimationGroup
需求
標頭: afxanimationcontroller.h
CAnimationGroup::~CAnimationGroup
解構函式。 當動畫群組被終結時呼叫。
~CAnimationGroup();
CAnimationGroup::AddKeyframes
將主要畫面格新增至分鏡腳本的協助程式。
void AddKeyframes(IUIAnimationStoryboard* pStoryboard, BOOL bAddDeep);
參數
pStoryboard
分鏡腳本 COM 物件的指標。
bAddDeep
指定這個方法是否應該新增至相依於其他主要畫面格的分鏡腳本主要畫面格。
CAnimationGroup::AddTransitions
將轉換新增至分鏡腳本的協助程式。
void AddTransitions(
IUIAnimationStoryboard* pStoryboard,
BOOL bDependOnKeyframes);
參數
pStoryboard
分鏡腳本 COM 物件的指標。
bDependOnKeyframes
CAnimationGroup::Animate
建立群組的動畫。
BOOL Animate(
IUIAnimationManager* pManager,
IUIAnimationTimer* pTimer,
BOOL bScheduleNow);
參數
pManager
pTimerbScheduleNow
傳回值
如果方法成功,則為TRUE;否則為 FALSE。
備註
此方法會建立內部分鏡腳本、建立及套用轉換,並在 bScheduleNow 為 TRUE 時排程動畫。 如果 bScheduleNow 為 FALSE,您必須呼叫 Schedule,以在指定的時間啟動動畫。
CAnimationGroup::ApplyTransitions
將轉換套用至動畫物件。
void ApplyTransitions();
備註
如果未建立分鏡腳本,這個方法 ASSERTS 就會處於偵錯模式。 它會先建立所有轉換,然後新增「靜態」主要畫面格(相依於位移的主要畫面格)、新增不相依於主要畫面格的轉換、根據轉換和其他主要畫面格新增主要畫面格的轉換,最後新增相依於主要畫面格的轉換。
CAnimationGroup::CAnimationGroup
建構動畫群組。
CAnimationGroup(CAnimationController* pParentController, UINT32 nGroupID);
參數
pParentController
建立群組之動畫控制器的指標。
nGroupID
指定 GroupID。
CAnimationGroup::CreateTransitions
建立 COM 轉換對象的協助程式。
BOOL CreateTransitions();
傳回值
TRUE 是方法成功,否則為 FALSE。
CAnimationGroup::FindAnimationObject
尋找包含指定動畫變數的動畫物件。
CAnimationBaseObject* FindAnimationObject(IUIAnimationVariable* pVariable);
參數
pVariable
動畫變數的指標。
傳回值
動畫物件的指標,如果找不到動畫物件,則為 NULL。
CAnimationGroup::GetGroupID
傳回 GroupID。
UINT32 GetGroupID() const;
傳回值
群組標識碼。
CAnimationGroup::m_bAutoclearTransitions
指定如何清除屬於群組的動畫物件轉換。 如果這個成員為TRUE,當已排程動畫時,會自動移除轉換。 否則,您必須手動移除轉換。
BOOL m_bAutoclearTransitions;
CAnimationGroup::m_bAutodestroyAnimationObjects
指定如何終結動畫物件。 如果此參數為TRUE,動畫物件會在群組終結時自動終結。 否則,動畫對象必須手動終結。 預設值為 FALSE。 只有在所有屬於群組的動畫物件都以動態方式配置運算符 new 時,才將此值設定為 TRUE。
BOOL m_bAutodestroyAnimationObjects;
CAnimationGroup::m_bAutodestroyKeyframes
指定如何終結主要畫面格。 如果此值為TRUE,則會移除並終結所有主要畫面格;否則,它們只會從清單中移除。 預設值為 TRUE。
BOOL m_bAutodestroyKeyframes;
CAnimationGroup::m_lstAnimationObjects
包含動畫物件的清單。
CObList m_lstAnimationObjects;
CAnimationGroup::m_lstKeyFrames
包含主要畫面格的清單。
CObList m_lstKeyFrames;
CAnimationGroup::m_nGroupID
動畫群組的唯一標識碼。
UINT32 m_nGroupID;
CAnimationGroup::m_pParentController
這個群組所屬之動畫控制器的指標。
CAnimationController* m_pParentController;
CAnimationGroup::m_pStoryboard
指向動畫分鏡腳本。 只有在 Animate 上呼叫之後,這個指標才有效。
ATL::CComPtr<IUIAnimationStoryboard> m_pStoryboard;
CAnimationGroup::RemoveKeyframes
拿掉並選擇性地終結屬於動畫群組的所有主要畫面格。
void RemoveKeyframes();
備註
如果m_bAutodestroyKeyframes成員為 TRUE,則會移除和終結主要畫面格,否則主要畫面格只會從主要畫面格的內部清單中移除。
CAnimationGroup::RemoveTransitions
從屬於動畫群組的動畫物件中移除轉換。
void RemoveTransitions();
備註
如果m_bAutoclearTransitions旗標設定為 TRUE,這個方法會迴圈處理屬於群組的所有動畫物件,並呼叫 CAnimationObject::ClearTransitions(FALSE)。
CAnimationGroup::Schedule
在指定的時間排程動畫。
BOOL Schedule(IUIAnimationTimer* pTimer, UI_ANIMATION_SECONDS time);
參數
pTimer
動畫定時器的指標。
time
指定排程動畫的時間。
傳回值
如果方法成功,則為TRUE;如果方法失敗,或者當 bScheduleNow 設定為 FALSE 時未呼叫 Animate,則為 FALSE。
備註
呼叫此函式,以在指定的時間排程動畫。 您必須先呼叫 Animate,bScheduleNow 設定為 FALSE。
CAnimationGroup::SetAutodestroyTransitions
引導屬於群組的所有動畫物件會自動終結轉換。
void SetAutodestroyTransitions(BOOL bAutoDestroy = TRUE);
參數
bAutoDestroy
指定如何終結轉換。
備註
只有當您在堆疊上配置轉換時,才將此值設定為 FALSE。 默認值為TRUE,因此強烈建議使用運算符 new 配置轉換物件。