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


Класс CAnimationBaseObject

Базовый класс для всех объектов анимации.

Синтаксис

class CAnimationBaseObject : public CObject;

Участники

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

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

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

Имя Описание
CAnimationBaseObject::ApplyTransitions Добавляет переходы в раскадровку с инкапсулированной переменной анимации.
CAnimationBaseObject::ClearTransitions Удаляет все связанные переходы.
CAnimationBaseObject::ContainsVariable Определяет, содержит ли объект анимации определенную переменную анимации.
CAnimationBaseObject::CreateTransitions Создает переходы, связанные с объектом анимации.
CAnimationBaseObject::D etachFromController Отсоединяет объект анимации от родительского контроллера анимации.
CAnimationBaseObject::EnableIntegerValueChangedEvent Настраивает обработчик событий "Целочисленное значение изменено".
CAnimationBaseObject::EnableValueChangedEvent Настраивает обработчик событий "Изменено значение".
CAnimationBaseObject::GetAutodedataTransitions Указывает, уничтожаются ли связанные переходы автоматически.
CAnimationBaseObject::GetGroupID Возвращает текущий идентификатор группы.
CAnimationBaseObject::GetObjectID Возвращает текущий идентификатор объекта.
CAnimationBaseObject::GetUserData Возвращает определяемые пользователем данные.
CAnimationBaseObject::SetAutodeodetransitions Задает флаг для автоматического уничтожения переходов.
CAnimationBaseObject::SetID Задает новые идентификаторы.
CAnimationBaseObject::SetUserData Задает пользовательские данные.

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

Имя Описание
CAnimationBaseObject::GetAnimationVariableList Собирает указатели на содержащиеся переменные анимации.
CAnimationBaseObject::SetParentAnimationObjects Устанавливает связь между переменными анимации, содержащимися в объекте анимации, и их контейнером.

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

Имя Описание
CAnimationBaseObject::m_bAutodestroyTransitions Указывает, следует ли автоматически уничтожать связанные переходы.
CAnimationBaseObject::m_dwUserData Хранит определяемые пользователем данные.
CAnimationBaseObject::m_nGroupID Указывает идентификатор группы объекта анимации.
CAnimationBaseObject::m_nObjectID Указывает идентификатор объекта анимации.
CAnimationBaseObject::m_pParentController Указатель на родительский контроллер анимации.

Замечания

Этот класс реализует базовые методы для всех объектов анимации. Объект анимации может представлять значение, точку, размер, прямоугольник или цвет в приложении, а также любую пользовательскую сущность. Объекты анимации хранятся в группах анимации (см. раздел CAnimationGroup). Каждая группа может быть анимирована отдельно и может рассматриваться как аналог раскадровки. Объект анимации инкапсулирует одну или несколько переменных анимации (см. раздел CAnimationVariable), в зависимости от его логического представления. Например, CAnimationRect содержит четыре переменные анимации — одну переменную для каждой стороны прямоугольника. Каждый класс объекта анимации предоставляет перегруженный метод AddTransition, который следует использовать для применения переходов к инкапсулированным переменным анимации. Объект анимации можно определить по идентификатору объекта (необязательно) и по идентификатору группы. Идентификатор группы необходим для размещения объекта анимации для правильной группы, но если идентификатор группы не указан, объект помещается в группу по умолчанию с идентификатором 0. При вызове SetID с другим идентификатором GroupID объект анимации будет перемещен в другую группу (при необходимости создается новая группа).

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

CObject

CAnimationBaseObject

Требования

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

CAnimationBaseObject::~CAnimationBaseObject

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

virtual ~CAnimationBaseObject();

CAnimationBaseObject::ApplyTransitions

Добавляет переходы в раскадровку с инкапсулированной переменной анимации.

virtual BOOL ApplyTransitions(
    IUIAnimationStoryboard* pStoryboard,
    BOOL bDependOnKeyframes);

Параметры

pStoryboard
Указатель на раскадровку.

bDependOnKeyframes
Если значение FALSE, этот метод добавляет только те переходы, которые не зависят от ключевых кадров.

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

Значение TRUE, если переходы были добавлены успешно.

Замечания

Добавляет связанные переходы, добавленные с помощью AddTransition (перегруженные методы в производных классах), в раскадровку.

CAnimationBaseObject::CAnimationBaseObject

Создает объект анимации.

CAnimationBaseObject();

CAnimationBaseObject(
    UINT32 nGroupID,
    UINT32 nObjectID = (UINT32)-1,
    DWORD dwUserData = 0);

Параметры

nGroupID
Указывает идентификатор группы.

nObjectID
Указывает идентификатор объекта.

dwUserData
Определяемые пользователем данные, которые могут быть связаны с объектом анимации и извлекаются позже во время выполнения.

Замечания

Создает объекты анимации и назначает идентификатор объекта по умолчанию (0) и идентификатор группы (0).

CAnimationBaseObject::ClearTransitions

Удаляет все связанные переходы.

virtual void ClearTransitions(BOOL bAutodestroy);

Параметры

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

Замечания

Удаляет все связанные переходы и уничтожает их, если флаг bAutodebi или m_bAutodestroyTransitions имеет значение TRUE. Переходы должны быть автоматически уничтожены только в том случае, если они не выделены в стеке. Если указанные выше флаги имеют значение FALSE, переходы просто удаляются из внутреннего списка связанных переходов.

CAnimationBaseObject::ContainsVariable

Определяет, содержит ли объект анимации определенную переменную анимации.

virtual BOOL ContainsVariable(IUIAnimationVariable* pVariable);

Параметры

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

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

ЗНАЧЕНИЕ TRUE, если переменная анимации содержится в объекте анимации; в противном случае ЗНАЧЕНИЕ FALSE.

Замечания

Этот метод можно использовать для определения того, содержится ли переменная анимации, указанная pVariable, в объекте анимации. Объект анимации в зависимости от типа может содержать несколько переменных анимации. Например, CAnimationColor содержит три переменные, по одному для каждого компонента цвета (красный, зеленый и синий). При изменении значения переменной анимации API анимации Windows отправляет события ValueChanged или IntegerValueChanged (если оно включено), а параметр этого события — указатель на интерфейс IUIAnimationVariable переменной анимации. Этот метод помогает получить указатель на анимацию с указателя на содержащийся COM-объект.

CAnimationBaseObject::CreateTransitions

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

BOOL CreateTransitions();

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

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

Замечания

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

CAnimationBaseObject::D etachFromController

Отсоединяет объект анимации от родительского контроллера анимации.

void DetachFromController();

Замечания

Этот метод используется внутри системы.

CAnimationBaseObject::EnableIntegerValueChangedEvent

Настраивает обработчик событий "Целочисленное значение изменено".

virtual void EnableIntegerValueChangedEvent(
    CAnimationController* pController,
    BOOL bEnable);

Параметры

pController
Указатель на родительский контроллер.

bEnable
Указывает, следует ли включить или отключить событие "Целочисленное значение изменено".

Замечания

Если обработчик событий Integer Value Changed включен, можно обработать это событие в методе CAnimationController::OnAnimationIntegerValueChanged, который следует переопределить в классе, производном от CAnimationController. Этот метод вызывается при каждом изменении целочисленного значения анимации.

CAnimationBaseObject::EnableValueChangedEvent

Настраивает обработчик событий "Изменено значение".

virtual void EnableValueChangedEvent(
    CAnimationController* pController,
    BOOL bEnable);

Параметры

pController
Указатель на родительский контроллер.

bEnable
Указывает, следует ли включить или отключить событие "Изменено значение".

Замечания

Если обработчик событий "Изменено значение" включен, можно обработать это событие в методе CAnimationController::OnAnimationValueChanged, который должен быть переопределен в классе, производным от CAnimationController. Этот метод вызывается при каждом изменении значения анимации.

CAnimationBaseObject::GetAnimationVariableList

Собирает указатели на содержащиеся переменные анимации.

virtual void GetAnimationVariableList(
    CList<CAnimationVariable*,
    CAnimationVariable*>& list) = 0;

Параметры

список
Список, который должен быть заполнен переменными анимации, содержащимися в объекте анимации.

Замечания

Этот чистый виртуальный метод должен быть переопределен в производном классе. Объект анимации в зависимости от типа содержит одну или несколько переменных анимации. Например, CAnimationPoint содержит две переменные для координат X и Y соответственно. Базовый класс CAnimationBaseObject реализует некоторые универсальные методы, которые действуют в списке переменных анимации: ApplyTransitions, ClearTransitions, EnableValueChangedEvent, EnableIntegerValueChangedEvent. Эти методы вызывают GetAnimationVariableList, который заполняется производным классом с фактическими переменными анимации, содержащимися в определенном объекте анимации, а затем циклизируйте список и выполните необходимые действия. При создании пользовательского объекта анимации необходимо добавить в список всех переменных анимации, содержащихся в этом объекте.

CAnimationBaseObject::GetAutodedataTransitions

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

BOOL GetAutodestroyTransitions() const;

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

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

Замечания

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

CAnimationBaseObject::GetGroupID

Возвращает текущий идентификатор группы.

UINT32 GetGroupID() const;

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

Текущий идентификатор группы.

Замечания

Используйте этот метод для получения идентификатора группы. Это 0, если идентификатор группы не был задан явным образом в конструкторе или с SetID.

CAnimationBaseObject::GetObjectID

Возвращает текущий идентификатор объекта.

UINT32 GetObjectID() const;

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

Текущий идентификатор объекта.

Замечания

Используйте этот метод для получения идентификатора объекта. Это значение 0, если идентификатор объекта не был задан явным образом в конструкторе или с SetID.

CAnimationBaseObject::GetUserData

Возвращает определяемые пользователем данные.

DWORD GetUserData() const;

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

Значение пользовательских данных.

Замечания

Вызовите этот метод, чтобы получить пользовательские данные во время выполнения. Возвращаемое значение будет равно 0, если оно не было явно инициализировано в конструкторе или с Помощью SetUserData.

CAnimationBaseObject::m_bAutodestroyTransitions

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

BOOL m_bAutodestroyTransitions;

CAnimationBaseObject::m_dwUserData

Хранит определяемые пользователем данные.

DWORD m_dwUserData;

CAnimationBaseObject::m_nGroupID

Указывает идентификатор группы объекта анимации.

UINT32 m_nGroupID;

CAnimationBaseObject::m_nObjectID

Указывает идентификатор объекта анимации.

UINT32 m_nObjectID;

CAnimationBaseObject::m_pParentController

Указатель на родительский контроллер анимации.

CAnimationController* m_pParentController;

CAnimationBaseObject::SetAutodeodetransitions

Задает флаг для автоматического уничтожения переходов.

void SetAutodestroyTransitions(BOOL bValue);

Параметры

bValue
Указывает флаг автоматического уничтожения.

Замечания

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

CAnimationBaseObject::SetID

Задает новые идентификаторы.

void SetID(
    UINT32 nObjectID,
    UINT32 nGroupID = 0);

Параметры

nObjectID
Задает новый идентификатор объекта.

nGroupID
Задает новый идентификатор группы.

Замечания

Позволяет изменить идентификатор объекта и идентификатор группы. Если новый идентификатор группы отличается от текущего идентификатора, объект анимации перемещается в другую группу (при необходимости создается новая группа).

CAnimationBaseObject::SetParentAnimationObjects

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

virtual void SetParentAnimationObjects();

Замечания

Это вспомогательное средство можно использовать для установления связи между переменными анимации, содержащимися в объекте анимации, и их контейнером. Он цикличен по переменным анимации и задает указатель на родительский объект анимации для каждой переменной анимации. В текущей реализации фактическая связь устанавливается в CAnimationBaseObject::ApplyTransitions, поэтому обратные указатели не задаются до вызова CAnimationGroup::Animmate. Зная связь, может быть полезной при обработке событий и необходимо получить родительский объект анимации из CAnimationVariable. Используйте CAnimationVariable::GetParentAnimationObject.

CAnimationBaseObject::SetUserData

Задает пользовательские данные.

void SetUserData (DWORD dwUserData);

Параметры

dwUserData
Указывает пользовательские данные.

Замечания

Используйте этот метод для связывания пользовательских данных с объектом анимации. Эти данные могут быть получены позже во время выполнения GetUserData.

См. также

Классы