分享方式:


CAnimationBaseObject 類別

所有動畫物件的基底類別。

語法

class CAnimationBaseObject : public CObject;

成員

公用建構函式

名稱 描述
CAnimationBaseObject::CAnimationBaseObject 已多載。 建構動畫物件。
CAnimationBaseObject::~CAnimationBaseObject 解構函式。 當動畫物件被終結時呼叫。

公用方法

名稱 描述
CAnimationBaseObject::ApplyTransitions 使用封裝的動畫變數,將轉換新增至分鏡腳本。
CAnimationBaseObject::ClearTransitions 移除所有相關轉換。
CAnimationBaseObject::ContainsVariable 判斷動畫物件是否包含特定的動畫變數。
CAnimationBaseObject::CreateTransitions 建立與動畫物件相關聯的轉換。
CAnimationBaseObject::D etachFromController 從父動畫控制器中斷連結動畫物件。
CAnimationBaseObject::EnableIntegerValueChangedEvent 設定整數值已變更事件處理常式。
CAnimationBaseObject::EnableValueChangedEvent 設定 Value Changed 事件處理常式。
CAnimationBaseObject::GetAutodestroyTransitions 指出是否自動終結相關的轉換。
CAnimationBaseObject::GetGroupID 傳回目前的群組識別碼。
CAnimationBaseObject::GetObjectID 傳回目前的物件識別碼。
CAnimationBaseObject::GetUserData 傳回使用者定義的資料。
CAnimationBaseObject::SetAutodestroyTransitions 設定旗標以自動終結轉換。
CAnimationBaseObject::SetID 設定新的識別碼。
CAnimationBaseObject::SetUserData 設定使用者定義的資料。

受保護的方法

名稱 描述
CAnimationBaseObject::GetAnimationVariableList 收集自主動畫變數的指標。
CAnimationBaseObject::SetParentAnimationObjects 建立動畫變數之間的關聯性,這些變數包含在動畫物件及其容器中。

受保護的資料成員

名稱 描述
CAnimationBaseObject::m_bAutodestroyTransitions 指定是否應該自動終結相關的轉換。
CAnimationBaseObject::m_dwUserData 儲存使用者定義的資料。
CAnimationBaseObject::m_nGroupID 指定動畫物件的群組識別碼。
CAnimationBaseObject::m_nObjectID 指定動畫物件的物件識別碼。
CAnimationBaseObject::m_pParentController 父動畫控制器的指標。

備註

這個類別會實作所有動畫物件的基本方法。 動畫物件可以代表應用程式中的值、點、大小、矩形或色彩,以及任何自訂實體。 動畫物件會儲存在動畫群組中(請參閱 CAnimationGroup)。 每個群組都可以個別產生動畫效果,並可視為分鏡腳本的類比。 動畫物件會封裝一或多個動畫變數(請參閱 CAnimationVariable),視其邏輯標記法而定。 例如,CAnimationRect 包含四個動畫變數 -一個矩形每一側的變數。 每個動畫物件類別都會公開多載的 AddTransition 方法,這個方法應該用來將轉換套用至封裝的動畫變數。 動畫物件可以透過物件識別碼(選擇性地)和群組識別碼來識別。 必須有群組識別碼,才能將動畫物件放置到正確的群組,但如果未指定群組識別碼,則會將物件放在識別碼為 0 的預設群組中。 如果您使用不同的 GroupID 呼叫 SetID,動畫物件將會移至另一個群組(必要時會建立新的群組)。

繼承階層架構

CObject

CAnimationBaseObject

需求

標頭: afxanimationcontroller.h

CAnimationBaseObject::~CAnimationBaseObject

解構函式。 當動畫物件被終結時呼叫。

virtual ~CAnimationBaseObject();

CAnimationBaseObject::ApplyTransitions

使用封裝的動畫變數,將轉換新增至分鏡腳本。

virtual BOOL ApplyTransitions(
    IUIAnimationStoryboard* pStoryboard,
    BOOL bDependOnKeyframes);

參數

pStoryboard
分鏡腳本的指標。

bDependOnKeyframes
當 FALSE 時,這個方法只會新增不相依于主要畫面格的轉換。

傳回值

如果成功新增轉換,則為 TRUE。

備註

將已新增 AddTransition 的相關轉換(衍生類別中的多載方法)新增至分鏡腳本。

CAnimationBaseObject::CAnimationBaseObject

建構動畫物件。

CAnimationBaseObject();

CAnimationBaseObject(
    UINT32 nGroupID,
    UINT32 nObjectID = (UINT32)-1,
    DWORD dwUserData = 0);

參數

nGroupID
指定群組識別碼。

nObjectID
指定物件識別碼。

dwUserData
使用者定義的資料,可以與動畫物件相關聯,稍後在執行時間擷取。

備註

建構動畫物件,並指派預設物件識別碼 (0) 和群組識別碼 (0)。

CAnimationBaseObject::ClearTransitions

移除所有相關轉換。

virtual void ClearTransitions(BOOL bAutodestroy);

參數

bAutodestroy
指定是否要自動終結轉換物件,或只是從相關清單中移除它們。

備註

如果 bAutodestroy 或 m_bAutodestroyTransitions 旗標為 TRUE,則移除所有相關轉換並終結它們。 只有在未在堆疊上配置轉換時,才會自動終結轉換。 如果上述旗標為 FALSE,則轉換只會從相關轉換的內部清單中移除。

CAnimationBaseObject::ContainsVariable

判斷動畫物件是否包含特定的動畫變數。

virtual BOOL ContainsVariable(IUIAnimationVariable* pVariable);

參數

pVariable
動畫變數的指標。

傳回值

如果動畫變數包含在動畫物件中,則為 TRUE;否則為 FALSE。

備註

這個方法可用來判斷 pVariable 指定的動畫變數是否包含在動畫物件內。 動畫物件,視其類型而定,可能會包含數個動畫變數。 例如,CAnimationColor 包含三個變數,每個色彩元件各一個變數(紅色、綠色和藍色)。 當動畫變數的值已變更時,Windows 動畫 API 會傳送 ValueChanged 或 IntegerValueChanged 事件(如果已啟用),而此事件的參數是動畫變數的介面 IUIAnimationVariable 的指標。 這個方法有助於從包含 COM 物件的指標取得動畫指標。

CAnimationBaseObject::CreateTransitions

建立與動畫物件相關聯的轉換。

BOOL CreateTransitions();

傳回值

如果成功建立轉換,則為 TRUE;否則為 FALSE。

備註

迴圈查看封裝在衍生動畫物件中的動畫變數清單,並建立與每個動畫變數相關聯的轉換。

CAnimationBaseObject::D etachFromController

從父動畫控制器中斷連結動畫物件。

void DetachFromController();

備註

此方法會在內部使用。

CAnimationBaseObject::EnableIntegerValueChangedEvent

設定整數值已變更事件處理常式。

virtual void EnableIntegerValueChangedEvent(
    CAnimationController* pController,
    BOOL bEnable);

參數

pController
父控制器的指標。

bEnable
指定要啟用或停用整數值 Changed 事件。

備註

如果已啟用 Integer Value Changed 事件處理常式,您可以在 CAnimationController::OnAnimationIntegerValueChanged 方法中處理此事件,這應該在 CAnimationController 衍生類別中覆寫。 每次動畫整數值變更時,都會呼叫這個方法。

CAnimationBaseObject::EnableValueChangedEvent

設定 Value Changed 事件處理常式。

virtual void EnableValueChangedEvent(
    CAnimationController* pController,
    BOOL bEnable);

參數

pController
父控制器的指標。

bEnable
指定要啟用或停用 Value Changed 事件。

備註

如果已啟用 Value Changed 事件處理常式,您可以在 CAnimationController::OnAnimationValueChanged 方法中處理此事件,這應該在 CAnimationController 衍生類別中覆寫。 每次動畫值變更時,都會呼叫這個方法。

CAnimationBaseObject::GetAnimationVariableList

收集自主動畫變數的指標。

virtual void GetAnimationVariableList(
    CList<CAnimationVariable*,
    CAnimationVariable*>& list) = 0;

參數

清單
必須填入動畫物件中包含的動畫變數的清單。

備註

這個純虛擬方法必須在衍生類別中覆寫。 動畫物件,視其類型而定,包含一或多個動畫變數。 例如,CAnimationPoint 分別包含 X 和 Y 座標的兩個變數。 基類 CAnimationBaseObject 會實作一些泛型方法,其作用於動畫變數清單:ApplyTransitions、ClearTransitions、EnableValueChangedEvent、EnableIntegerValueChangedEvent。 這些方法會呼叫 GetAnimationVariableList,其會填入衍生類別,其中包含特定動畫物件中包含的實際動畫變數,然後迴圈查看清單並執行必要的動作。 如果您建立自訂動畫物件,則必須新增 以 列出 該物件中包含的所有動畫變數。

CAnimationBaseObject::GetAutodestroyTransitions

指出是否自動終結相關的轉換。

BOOL GetAutodestroyTransitions() const;

傳回值

如果為 TRUE,則會自動終結相關的轉換;如果為 FALSE,則呼叫應用程式應該解除配置轉換物件。

備註

根據預設,此旗標為 TRUE。 只有在您在堆疊和/或轉換上配置轉換時,呼叫端應用程式才應取消配置此旗標。

CAnimationBaseObject::GetGroupID

傳回目前的群組識別碼。

UINT32 GetGroupID() const;

傳回值

目前的群組識別碼。

備註

使用這個方法來擷取群組識別碼。 如果在建構函式或 SetID 中未明確設定群組識別碼,則為 0。

CAnimationBaseObject::GetObjectID

傳回目前的物件識別碼。

UINT32 GetObjectID() const;

傳回值

目前的物件識別碼。

備註

使用這個方法來擷取物件識別碼。 如果物件識別碼尚未在建構函式或 SetID 中明確設定,則為 0。

CAnimationBaseObject::GetUserData

傳回使用者定義的資料。

DWORD GetUserData() const;

傳回值

自訂資料的值。

備註

呼叫此方法以在執行時間擷取自訂資料。 如果傳回的值在建構函式或 SetUserData 中未明確初始化,則會是 0。

CAnimationBaseObject::m_bAutodestroyTransitions

指定是否應該自動終結相關的轉換。

BOOL m_bAutodestroyTransitions;

CAnimationBaseObject::m_dwUserData

儲存使用者定義的資料。

DWORD m_dwUserData;

CAnimationBaseObject::m_nGroupID

指定動畫物件的群組識別碼。

UINT32 m_nGroupID;

CAnimationBaseObject::m_nObjectID

指定動畫物件的物件識別碼。

UINT32 m_nObjectID;

CAnimationBaseObject::m_pParentController

父動畫控制器的指標。

CAnimationController* m_pParentController;

CAnimationBaseObject::SetAutodestroyTransitions

設定旗標以自動終結轉換。

void SetAutodestroyTransitions(BOOL bValue);

參數

bValue
指定自動終結旗標。

備註

只有在您使用運算子 new 配置轉換物件時,才設定此旗標。 如果基於某些原因,轉換物件配置在堆疊上,則自動終結旗標應該是 FALSE。 根據預設,此旗標為 TRUE。

CAnimationBaseObject::SetID

設定新的識別碼。

void SetID(
    UINT32 nObjectID,
    UINT32 nGroupID = 0);

參數

nObjectID
指定新的物件識別碼。

nGroupID
指定新的群組識別碼。

備註

可讓您變更物件識別碼和群組識別碼。 如果新的群組識別碼與目前的識別碼不同,動畫物件會移至另一個群組(如有必要,將會建立新的群組)。

CAnimationBaseObject::SetParentAnimationObjects

建立動畫變數之間的關聯性,這些變數包含在動畫物件及其容器中。

virtual void SetParentAnimationObjects();

備註

此協助程式可用來建立動畫物件中包含的動畫變數與其容器之間的關聯性。 它會迴圈處理動畫變數,並將父動畫物件的返回指標設定為每個動畫變數。 在目前的實作中,實際關聯性是在 CAnimationBaseObject::ApplyTransitions 中建立,因此在您呼叫 CAnimationGroup::Animate 之前,不會設定返回指標。 當您處理事件並需要從 CAnimationVariable 取得父動畫物件時,瞭解關聯性可能會很有説明。 使用 CAnimationVariable::GetParentAnimationObject。

CAnimationBaseObject::SetUserData

設定使用者定義的資料。

void SetUserData (DWORD dwUserData);

參數

dwUserData
指定自訂資料。

備註

使用這個方法可將自訂資料與動畫物件產生關聯。 稍後,GetUserData 可能會在執行時間擷取此資料。

另請參閱

類別