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。