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


Создание основных объектов анимации

Чтобы использовать анимацию Windows в приложении, первым шагом является создание небольшого набора основных объектов анимации.

Обзор

Используйте функцию CoCreateInstance для создания диспетчера анимации, таймера анимации и объектов библиотеки перехода.

Эти объекты потребуются для создания и отображения анимаций, поэтому они обычно не должны быть освобождены до завершения работы приложения. Если нет шансов, что любые зарегистрированные обратные вызовы могли бы создать эталонный цикл, освобождение объектов достаточно для правильной очистки. В противном случае приложение может освободить ресурсы, очищая обратные вызовы (передавая NULL вместо каждого) или вызывая метод завершения работы диспетчера анимации.

Пример кода

Следующий пример кода взят из MainWindow.cpp в примерах анимации Windows; см. метод CMainWindow::InitializeAnimation.

// Create the animation manager object

HRESULT hr = CoCreateInstance(
    CLSID_UIAnimationManager,
    NULL,
    CLSCTX_INPROC_SERVER,
    IID_PPV_ARGS(&m_pAnimationManager)
    );

if (SUCCEEDED(hr))
{
    // Create the animation timer object

    hr = CoCreateInstance(
        CLSID_UIAnimationTimer,
        NULL,
        CLSCTX_INPROC_SERVER,
        IID_PPV_ARGS(&m_pAnimationTimer)
        );

    if (SUCCEEDED(hr))
    {
        // Create the transition library object

        hr = CoCreateInstance(
            CLSID_UIAnimationTransitionLibrary,
            NULL,
            CLSCTX_INPROC_SERVER,
            IID_PPV_ARGS(&m_pTransitionLibrary)
            );

        ...

    }

    ...

}

Обратите внимание на следующие определения из MainWindow.h.

class CMainWindow
{

    ...

private:

    // Animation components

    IUIAnimationManager *m_pAnimationManager;
    IUIAnimationTimer *m_pAnimationTimer;
    IUIAnimationTransitionLibrary *m_pTransitionLibrary;

    ...

};

Следующий шаг

После выполнения этого шага следующий шаг: создать переменные анимации.

CoCreateInstance

IUIAnimationManager

IUIAnimationTimer

IUIAnimationTransitionLibrary

Обзор Анимации «Windows»