分享方式:


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
pTimer bScheduleNow

傳回值

如果方法成功,則為 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 配置轉換物件。

另請參閱

類別