CInterpolatorBase 類別
實作回呼,當動畫 API 必須計算動畫變數的新值時由此 API 呼叫。
語法
class CInterpolatorBase : public CUIAnimationInterpolatorBase<CInterpolatorBase>;
成員
公用建構函式
名稱 | 描述 |
---|---|
CInterpolatorBase::CInterpolatorBase | CInterpolatorBase 建構物件。 |
公用方法
名稱 | 描述 |
---|---|
CInterpolatorBase::CreateInstance | 建立的 CInterpolatorBase 實例,並將指標儲存至自定義插補器,以處理事件。 |
CInterpolatorBase::GetDependencies | 取得插補器的相依性。 (覆寫 CUIAnimationInterpolatorBase::GetDependencies 。) |
CInterpolatorBase::GetDuration | 取得插補器的持續時間。 (覆寫 CUIAnimationInterpolatorBase::GetDuration 。) |
CInterpolatorBase::GetFinalValue | 取得插補器所導向的最終值。 (覆寫 CUIAnimationInterpolatorBase::GetFinalValue 。) |
CInterpolatorBase::InterpolateValue | 在指定的位移插入值 (覆寫 CUIAnimationInterpolatorBase::InterpolateValue 。) |
CInterpolatorBase::InterpolateVelocity | 以指定的位移插速度(覆寫 CUIAnimationInterpolatorBase::InterpolateVelocity 。) |
CInterpolatorBase::SetCustomInterpolator | 儲存自定義插補器的指標,以處理事件。 |
CInterpolatorBase::SetDuration | 設定插補器的持續時間 (覆寫 CUIAnimationInterpolatorBase::SetDuration 。) |
CInterpolatorBase::SetInitialValueAndVelocity | 設定插補器的初始值和速度。 (覆寫 CUIAnimationInterpolatorBase::SetInitialValueAndVelocity 。) |
備註
當物件建立為動畫初始化程式的一CCustomTransition
部分時,會建立並傳遞IUIAnimationTransitionFactory::CreateTransition
此處理程式(由 CAnimationController::AnimateGroup
啟動)。 通常您不需要直接使用此類別,它只會將所有事件傳回 CCustomInterpolator
衍生類別,其指標會傳遞至 的 CCustomTransition
建構函式。
繼承階層架構
CUIAnimationCallbackBase
CUIAnimationInterpolatorBase
CInterpolatorBase
需求
標頭: afxanimationcontroller.h
CInterpolatorBase::CInterpolatorBase
建構 CInterpolatorBase 物件。
CInterpolatorBase();
CInterpolatorBase::CreateInstance
建立 CInterpolatorBase 的實例,並儲存自定義插補器的指標,以處理事件。
static COM_DECLSPEC_NOTHROW HRESULT CreateInstance(
CCustomInterpolator* pInterpolator,
IUIAnimationInterpolator** ppHandler);
參數
pInterpolator
自定義插補器的指標。
ppHandler
輸出。 在函式傳回時,包含 CInterpolatorBase 實例的指標。
傳回值
CInterpolatorBase::GetDependencies
取得插補器的相依性。
IFACEMETHOD(GetDependencies)(
__out UI_ANIMATION_DEPENDENCIES* initialValueDependencies,
__out UI_ANIMATION_DEPENDENCIES* initialVelocityDependencies,
__out UI_ANIMATION_DEPENDENCIES* durationDependencies);
參數
initialValueDependencies
輸出。 插補器的各個層面,其相依於傳遞至 SetInitialValueAndVelocity 的初始值。
initialVelocityDependencies
輸出。 插補器的各個層面,取決於傳遞至 SetInitialValueAndVelocity 的初始速度。
durationDependencies
輸出。 插補器的各個層面,其相依於傳遞至 SetDuration 的持續時間。
傳回值
如果方法成功,則會傳回S_OK。 如果未設定 CCustomInterpolator,或自定義實作會從 GetDependencies 方法傳回 FALSE,則會傳回E_FAIL。
CInterpolatorBase::GetDuration
取得插補器的持續時間。
IFACEMETHOD(GetDuration)(__out UI_ANIMATION_SECONDS* duration);
參數
duration
輸出。 轉換的持續時間,以秒為單位。
傳回值
如果方法成功,則會傳回S_OK。 如果未設定 CCustomInterpolator,或自定義實作從 GetDuration 方法傳回 FALSE,則會傳回E_FAIL。
CInterpolatorBase::GetFinalValue
取得插補器所導向的最終值。
IFACEMETHOD(GetFinalValue)(__out DOUBLE* value);
參數
value
輸出。 轉換結束時變數的最終值。
傳回值
如果方法成功,則會傳回S_OK。 如果未設定 CCustomInterpolator,或自定義實作從 GetFinalValue 方法傳回 FALSE,則會傳回E_FAIL。
CInterpolatorBase::InterpolateValue
在指定的位移插入值
IFACEMETHOD(InterpolateValue)(
__in UI_ANIMATION_SECONDS offset,
__out DOUBLE* value);
參數
offset
轉換開頭的位移。 位移一律大於或等於零,且小於轉換的持續時間。 如果轉換的持續時間為零,則不會呼叫這個方法。
value
輸出。 插補值。
傳回值
如果方法成功,則會傳回S_OK。 如果未設定 CCustomInterpolator,或自定義實作從 InterpolateValue 方法傳回 FALSE,則會傳回E_FAIL。
CInterpolatorBase::InterpolateVelocity
在指定位移處插補速度
IFACEMETHOD(InterpolateVelocity)(
__in UI_ANIMATION_SECONDS offset,
__out DOUBLE* velocity);
參數
offset
轉換開頭的位移。 位移一律大於或等於零,且小於或等於轉換的持續時間。 如果轉換的持續時間為零,則不會呼叫這個方法。
速度
輸出。 位移處變數的速度。
傳回值
如果方法成功,則會傳回S_OK。 如果未設定 CCustomInterpolator,或自定義實作從 InterpolateVelocity 方法傳回 FALSE,則會傳回E_FAIL。
CInterpolatorBase::SetCustomInterpolator
儲存自定義插補器的指標,以處理事件。
void SetCustomInterpolator(CCustomInterpolator* pInterpolator);
參數
pInterpolator
自定義插補器的指標。
CInterpolatorBase::SetDuration
設定插補器的持續時間
IFACEMETHOD(SetDuration)(__in UI_ANIMATION_SECONDS duration);
參數
duration
轉換的持續時間。
傳回值
如果方法成功,則會傳回S_OK。 如果未設定 CCustomInterpolator,或自定義實作從 SetDuration 方法傳回 FALSE,則會傳回E_FAIL。
CInterpolatorBase::SetInitialValueAndVelocity
設定插補器的初始值和速度。
IFACEMETHOD(SetInitialValueAndVelocity)(
__in DOUBLE initialValue,
__in DOUBLE initialVelocity);
參數
initialValue
轉換開始時變數的值。
initialVelocity
轉換開始時變數的速度。
傳回值
如果方法成功,則會傳回S_OK。 如果未設定 CCustomInterpolator,或自定義實作從 SetInitialValueAndVelocity 方法傳回 FALSE,則會傳回E_FAIL。