Класс 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.