IUIAnimationStoryboard::Schedule 方法 (uianimation.h)

指示情节提要自行安排播放。

语法

HRESULT Schedule(
  [in]            UI_ANIMATION_SECONDS           timeNow,
  [out, optional] UI_ANIMATION_SCHEDULING_RESULT *schedulingResult
);

参数

[in] timeNow

当前时间。

[out, optional] schedulingResult

计划请求的结果。 对此方法的调用中可以省略此参数。

返回值

如果该方法成功,则它会返回 S_OK。 否则,将返回 HRESULT 错误代码。 有关错误代码的列表,请参阅 Windows 动画 错误代码。

注解

此方法指示情节提要尝试将自身添加到情节提要的播放计划。 规则如下:

  • 如果没有为任何相同动画变量创建动画的正在播放情节提要,则尝试成功,情节提要将立即开始播放。
  • 如果情节提要优先取消、剪裁、结束或压缩冲突的情节提要,则计划尝试成功,情节提要将尽快开始播放。
  • 如果情节提要没有优先级,则尝试会失败,并且 schedulingResult 参数设置为 UI_ANIMATION_SCHEDULING_INSUFFICIENT_PRIORITY
如果从 OnStoryboardStatusChanged 事件的处理程序调用此方法,则 schedulingResult 参数设置为 UI_ANIMATION_SCHEDULING_DEFERRED。 确定情节提要是否成功计划的唯一方法是设置情节提要事件处理程序,并检查情节提要的状态是否变为UI_ANIMATION_STORYBOARD_INSUFFICIENT_PRIORITY

状态达到UI_ANIMATION_STORYBOARD_READY后,可以通过再次调用 Schedule 来重用情节提 。 当情节提要处于除 UI_ANIMATION_STORYBOARD_BUILDINGUI_ANIMATION_STORYBOARD_READY 以外的任何状态时,尝试计划情节提要失败,并且 schedulingResult 设置为 UI_ANIMATION_SCHEDULING_ALREADY_SCHEDULED

示例

以下示例获取当前时间并计划情节提要。 有关其他示例,请参阅 计划情节提要

// Get the current time and schedule the storyboard
UI_ANIMATION_SECONDS secondsNow;
hr = m_pAnimationTimer->GetTime(
    &secondsNow
    );
if (SUCCEEDED(hr))
{
    UI_ANIMATION_SCHEDULING_RESULT schedulingResult;
    hr = pStoryboard->Schedule(
        secondsNow,
        &schedulingResult
        );
    if (SUCCEEDED(hr))
    {
        if (schedulingResult == UI_ANIMATION_SCHEDULING_SUCCEEDED)
        {
            ...
        }
        else
        {
            ...
        }
    }
}

要求

要求
最低受支持的客户端 Windows 7、Windows Vista 和适用于 Windows Vista 的平台更新 [桌面应用 |UWP 应用]
最低受支持的服务器 无受支持的版本
目标平台 Windows
标头 uianimation.h
DLL UIAnimation.dll

另请参阅

IUIAnimationStoryboard

IUIAnimationStoryboard::Abandon

IUIAnimationStoryboard::Conclude

IUIAnimationStoryboard::Finish

IUIAnimationStoryboard::GetStatus

IUIAnimationTimer::GetTime

UI_ANIMATION_SCHEDULING_RESULT

UI_ANIMATION_STORYBOARD_STATUS