CInterpolatorBase 类

实现回调,它在必须计算动画变量的新值时由动画 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。)

备注

在动画初始化过程(由 CAnimationController::AnimateGroup 启动)中创建 CCustomTransition,会创建此处理程序并将其传递给 IUIAnimationTransitionFactory::CreateTransition。 通常,不需要直接使用此类,它只会将所有事件路由到一个 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,则返回 E_FAIL,或者自定义实现从 GetDependencies 方法返回 FALSE。

CInterpolatorBase::GetDuration

获取内插器的持续时间。

IFACEMETHOD(GetDuration)(__out UI_ANIMATION_SECONDS* duration);

参数

duration
输出。 转换的持续时间(以秒为单位)。

返回值

如果该方法成功,则它会返回 S_OK。 如果未设置 CCustomInterpolator,则返回 E_FAIL,或者自定义实现从 GetDuration 方法返回 FALSE。

CInterpolatorBase::GetFinalValue

获取内插器所指向的最终值。

IFACEMETHOD(GetFinalValue)(__out DOUBLE* value);

参数

value
输出。 转换结束时变量的最终值。

返回值

如果该方法成功,则它会返回 S_OK。 如果未设置 CCustomInterpolator,则返回 E_FAIL,或者自定义实现从 GetFinalValue 方法返回 FALSE。

CInterpolatorBase::InterpolateValue

在给定偏移处内插值

IFACEMETHOD(InterpolateValue)(
    __in UI_ANIMATION_SECONDS offset,
    __out DOUBLE* value);

参数

offset
距离转换开始处的偏移量。 偏移量始终大于或等于零,且小于转换的持续时间。 如果转换的持续时间为零,则不调用此方法。

value
输出。 内插值。

返回值

如果该方法成功,则它会返回 S_OK。 如果未设置 CCustomInterpolator,则返回 E_FAIL,或者自定义实现从 InterpolateValue 方法返回 FALSE。

CInterpolatorBase::InterpolateVelocity

在给定偏移处内插速度

IFACEMETHOD(InterpolateVelocity)(
    __in UI_ANIMATION_SECONDS offset,
    __out DOUBLE* velocity);

参数

offset
距离转换开始处的偏移量。 偏移量始终大于或等于零,且小于或等于转换的持续时间。 如果转换的持续时间为零,则不调用此方法。

velocity
输出。 变量在偏移处的速度。

返回值

如果该方法成功,则它会返回 S_OK。 如果未设置 CCustomInterpolator,则返回 E_FAIL,或者自定义实现从 InterpolateVelocity 方法返回 FALSE。

CInterpolatorBase::SetCustomInterpolator

存储指向将处理事件的自定义内插器的指针。

void SetCustomInterpolator(CCustomInterpolator* pInterpolator);

参数

pInterpolator
指向自定义内插器的指针。

CInterpolatorBase::SetDuration

设置内插器的持续时间

IFACEMETHOD(SetDuration)(__in UI_ANIMATION_SECONDS duration);

参数

duration
转换的持续时间。

返回值

如果该方法成功,则它会返回 S_OK。 如果未设置 CCustomInterpolator,则返回 E_FAIL,或者自定义实现从 SetDuration 方法返回 FALSE。

CInterpolatorBase::SetInitialValueAndVelocity

设置内插器的初始值和速度。

IFACEMETHOD(SetInitialValueAndVelocity)(
    __in DOUBLE initialValue,
    __in DOUBLE initialVelocity);

参数

initialValue
转换开始时变量的值。

initialVelocity
转换开始时变量的速度。

返回值

如果该方法成功,则它会返回 S_OK。 如果未设置 CCustomInterpolator,则返回 E_FAIL,或者自定义实现从 SetInitialValueAndVelocity 方法返回 FALSE。

另请参阅