Поделиться через


Метод 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. Попытка запланировать раскадровку, если она находится в состоянии, отличном от UI_ANIMATION_STORYBOARD_BUILDING или UI_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
Header uianimation.h
DLL UIAnimation.dll

См. также раздел

IUIAnimationStoryboard

IUIAnimationStoryboard::Abandon

IUIAnimationStoryboard::Завершение

IUIAnimationStoryboard::Finish

IUIAnimationStoryboard::GetStatus

IUIAnimationTimer::GetTime

UI_ANIMATION_SCHEDULING_RESULT

UI_ANIMATION_STORYBOARD_STATUS