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


Класс CAnimationGroup

Реализует группу анимации, которая объединяет раскадровку анимации, объекты анимации и переходы для определения анимации.

Синтаксис

class CAnimationGroup;

Участники

Открытые конструкторы

Имя Описание
CAnimationGroup::CAnimationGroup Создает группу анимации.
CAnimationGroup::~CAnimationGroup Деструктор Вызывается при уничтожении группы анимации.

Открытые методы

Имя Описание
CAnimationGroup::Animate Анимирует группу.
CAnimationGroup::ApplyTransitions Применяет переходы к объектам анимации.
CAnimationGroup::FindAnimationObject Находит объект анимации, содержащий указанную переменную анимации.
CAnimationGroup::GetGroupID Возвращает groupID.
CAnimationGroup::RemoveKeyframes Удаляет и при необходимости уничтожает все ключевые кадры, принадлежащие группе анимации.
CAnimationGroup::RemoveTransitions Удаляет переходы из объектов анимации, принадлежащих группе анимации.
CAnimationGroup::Schedule Планирует анимацию в указанное время.
CAnimationGroup::SetAutodetransitions Направляет все объекты анимации, принадлежащие группе, автоматически уничтожают переходы.

Защищенные методы

Имя Описание
CAnimationGroup::AddKeyframes Вспомогательный элемент, который добавляет ключевые кадры в раскадровку.
CAnimationGroup::AddTransitions Вспомогательный элемент, добавляющий переходы в раскадровку.
CAnimationGroup::CreateTransitions Вспомогательный элемент, создающий объекты перехода COM.

Открытые члены данных

Имя Описание
CAnimationGroup::m_bAutoclearTransitions Указывает, как очистить переходы из объектов анимации, принадлежащих группе. Если этот элемент имеет значение TRUE, переходы удаляются автоматически при планировании анимации. В противном случае необходимо вручную удалить переходы.
CAnimationGroup::m_bAutodestroyAnimationObjects Указывает, как уничтожить объекты анимации. Если этот параметр имеет значение TRUE, объекты анимации будут автоматически уничтожены при уничтожении группы. В противном случае объекты анимации должны быть уничтожены вручную. Значение по умолчанию — FALSE. Присвойте этому значению значение TRUE, только если все объекты анимации, принадлежащие группе, динамически выделяются с новым оператором.
CAnimationGroup::m_bAutodestroyKeyframes Указывает, как уничтожить ключевые кадры. Если это значение равно TRUE, все ключевые кадры удаляются и уничтожаются; в противном случае они удаляются только из списка. Значение по умолчанию — TRUE.
CAnimationGroup::m_lstAnimationObjects Содержит список объектов анимации.
CAnimationGroup::m_lstKeyFrames Содержит список ключевых кадров.
CAnimationGroup::m_pStoryboard Указывает на раскадровку анимации. Этот указатель действителен только после вызова Animate.

Защищенные члены данных

Имя Описание
CAnimationGroup::m_nGroupID Уникальный идентификатор группы анимации.
CAnimationGroup::m_pParentController Указатель на контроллер анимации, к которому принадлежит эта группа.

Замечания

Группы анимации создаются автоматически контроллером анимации (CAnimationController) при добавлении объектов анимации с помощью CAnimationController::AddAnimationObject. Группа анимации определяется groupID, которая обычно принимается в качестве параметра для управления группами анимации. GroupID берется из первого объекта анимации, добавляемого в новую группу анимации. После вызова CAnimationController::AnimationController::AnimateGroup создается инкапсулированный раскадровки анимации, к ним можно обращаться через общедоступный m_pStoryboard.

Иерархия наследования

CAnimationGroup

Требования

Заголовок: afxanimationcontroller.h

CAnimationGroup::~CAnimationGroup

Деструктор Вызывается при уничтожении группы анимации.

~CAnimationGroup();

CAnimationGroup::AddKeyframes

Вспомогательный элемент, который добавляет ключевые кадры в раскадровку.

void AddKeyframes(IUIAnimationStoryboard* pStoryboard, BOOL bAddDeep);

Параметры

pStoryboard
Указатель на com-объект раскадровки.

bAddDeep
Указывает, должен ли этот метод добавлять в кадры ключей раскадровки, зависящие от других ключевых кадров.

CAnimationGroup::AddTransitions

Вспомогательный элемент, добавляющий переходы в раскадровку.

void AddTransitions(
    IUIAnimationStoryboard* pStoryboard,
    BOOL bDependOnKeyframes);

Параметры

pStoryboard
Указатель на com-объект раскадровки.

bDependOnKeyframes

CAnimationGroup::Animate

Анимирует группу.

BOOL Animate(
    IUIAnimationManager* pManager,
    IUIAnimationTimer* pTimer,
    BOOL bScheduleNow);

Параметры

pManager
pTimerbScheduleNow

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если метод успешно выполнен; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

Этот метод создает внутреннюю раскадровку, создает и применяет переходы и планирует анимацию, если bScheduleNow имеет значение TRUE. Если bScheduleNow имеет значение FALSE, необходимо вызвать расписание запуска анимации в указанное время.

CAnimationGroup::ApplyTransitions

Применяет переходы к объектам анимации.

void ApplyTransitions();

Замечания

Этот метод ASSERTS в режиме отладки, если раскадровка не создана. Сначала он создает все переходы, а затем добавляет "статические" ключевые кадры (ключевые кадры, зависящие от смещения), добавляет переходы, не зависящие от ключевых кадров, добавляет ключевые кадры в зависимости от переходов и других ключевых кадров, а затем добавляет переходы, зависящие от ключевых кадров.

CAnimationGroup::CAnimationGroup

Создает группу анимации.

CAnimationGroup(CAnimationController* pParentController, UINT32 nGroupID);

Параметры

pParentController
Указатель на контроллер анимации, создающий группу.

nGroupID
Указывает GroupID.

CAnimationGroup::CreateTransitions

Вспомогательный элемент, создающий объекты перехода COM.

BOOL CreateTransitions();

Возвращаемое значение

Значение TRUE — это метод успешно, в противном случае — ЗНАЧЕНИЕ FALSE.

CAnimationGroup::FindAnimationObject

Находит объект анимации, содержащий указанную переменную анимации.

CAnimationBaseObject* FindAnimationObject(IUIAnimationVariable* pVariable);

Параметры

pVariable
Указатель на переменную анимации.

Возвращаемое значение

Указатель на объект анимации или ЗНАЧЕНИЕ NULL, если объект анимации не найден.

CAnimationGroup::GetGroupID

Возвращает groupID.

UINT32 GetGroupID() const;

Возвращаемое значение

Идентификатор группы.

CAnimationGroup::m_bAutoclearTransitions

Указывает, как очистить переходы из объектов анимации, принадлежащих группе. Если этот элемент имеет значение TRUE, переходы удаляются автоматически при планировании анимации. В противном случае необходимо вручную удалить переходы.

BOOL m_bAutoclearTransitions;

CAnimationGroup::m_bAutodestroyAnimationObjects

Указывает, как уничтожить объекты анимации. Если этот параметр имеет значение TRUE, объекты анимации будут автоматически уничтожены при уничтожении группы. В противном случае объекты анимации должны быть уничтожены вручную. Значение по умолчанию — FALSE. Присвойте этому значению значение TRUE, только если все объекты анимации, принадлежащие группе, динамически выделяются с новым оператором.

BOOL m_bAutodestroyAnimationObjects;

CAnimationGroup::m_bAutodestroyKeyframes

Указывает, как уничтожить ключевые кадры. Если это значение равно TRUE, все ключевые кадры удаляются и уничтожаются; в противном случае они удаляются только из списка. Значение по умолчанию — TRUE.

BOOL m_bAutodestroyKeyframes;

CAnimationGroup::m_lstAnimationObjects

Содержит список объектов анимации.

CObList m_lstAnimationObjects;

CAnimationGroup::m_lstKeyFrames

Содержит список ключевых кадров.

CObList m_lstKeyFrames;

CAnimationGroup::m_nGroupID

Уникальный идентификатор группы анимации.

UINT32 m_nGroupID;

CAnimationGroup::m_pParentController

Указатель на контроллер анимации, к которому принадлежит эта группа.

CAnimationController* m_pParentController;

CAnimationGroup::m_pStoryboard

Указывает на раскадровку анимации. Этот указатель действителен только после вызова Animate.

ATL::CComPtr<IUIAnimationStoryboard> m_pStoryboard;

CAnimationGroup::RemoveKeyframes

Удаляет и при необходимости уничтожает все ключевые кадры, принадлежащие группе анимации.

void RemoveKeyframes();

Замечания

Если элемент m_bAutodestroyKeyframes имеет значение TRUE, то ключевые кадры удаляются и уничтожаются, в противном случае ключевые кадры просто удаляются из внутреннего списка ключевых кадров.

CAnimationGroup::RemoveTransitions

Удаляет переходы из объектов анимации, принадлежащих группе анимации.

void RemoveTransitions();

Замечания

Если флаг m_bAutoclearTransitions имеет значение TRUE, этот метод циклирует все объекты анимации, принадлежащие группе, и вызывает CAnimationObject::ClearTransitions(FALSE).

CAnimationGroup::Schedule

Планирует анимацию в указанное время.

BOOL Schedule(IUIAnimationTimer* pTimer, UI_ANIMATION_SECONDS time);

Параметры

pTimer
Указатель на таймер анимации.

time
Указывает время для планирования анимации.

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если метод успешно выполнен; ЗНАЧЕНИЕ FALSE, если метод завершается ошибкой или если Animate не был вызван с параметром bScheduleNow, равным FALSE.

Замечания

Вызовите эту функцию, чтобы запланировать анимацию в указанное время. Сначала необходимо вызвать Animate с параметром bScheduleNow, равным FALSE.

CAnimationGroup::SetAutodetransitions

Направляет все объекты анимации, принадлежащие группе, автоматически уничтожают переходы.

void SetAutodestroyTransitions(BOOL bAutoDestroy = TRUE);

Параметры

bAutoDesk
Указывает, как уничтожить переходы.

Замечания

Задайте для этого значения значение FALSE, только если вы выделяете переходы в стеке. Значение по умолчанию — TRUE, поэтому настоятельно рекомендуется выделить объекты перехода с помощью оператора new.

См. также

Классы