CAnimationController 클래스
애니메이션을 만들고 관리하기 위한 중앙 인터페이스를 제공하는 애니메이션 컨트롤러를 구현합니다.
구문
class CAnimationController : public CObject;
멤버
공용 생성자
속성 | 설명 |
---|---|
CAnimationController::CAnimationController | 애니메이션 컨트롤러를 생성합니다. |
CAnimationController::~CAnimationController | 소멸자입니다. 애니메이션 컨트롤러 개체가 제거될 때 호출됩니다. |
공용 메서드
보호된 메서드
속성 | 설명 |
---|---|
CAnimationController::CleanUpGroup | 오버로드됨. 그룹을 정리하는 도우미입니다. |
CAnimationController::OnAfterSchedule | 지정된 그룹에 대한 애니메이션이 방금 예약된 경우 프레임워크에서 호출됩니다. |
보호된 데이터 멤버
속성 | 설명 |
---|---|
CAnimationController::gkeyframeStoryboardStart | 스토리보드의 시작을 나타내는 키 프레임입니다. |
CAnimationController::m_bIsValid | 애니메이션 컨트롤러가 유효한지 여부를 지정합니다. 현재 OS에서 Windows 애니메이션 API를 지원하지 않는 경우 이 멤버는 FALSE로 설정됩니다. |
CAnimationController::m_lstAnimationGroups | 이 애니메이션 컨트롤러에 속하는 애니메이션 그룹의 목록입니다. |
CAnimationController::m_pAnimationManager | Animation Manager COM 개체에 대한 포인터를 저장합니다. |
CAnimationController::m_pAnimationTimer | Animation Timer COM 개체에 대한 포인터를 저장합니다. |
CAnimationController::m_pRelatedWnd | 애니메이션 관리자의 상태가 변경되거나 업데이트 후 이벤트가 발생할 때 자동으로 다시 그릴 수 있는 관련 CWnd 개체에 대한 포인터입니다. NULL일 수 있습니다. |
CAnimationController::m_pTransitionFactory | Transition Factory COM 개체에 대한 포인터를 저장합니다. |
CAnimationController::m_pTransitionLibrary | 전환 라이브러리 COM 개체에 대한 포인터를 저장합니다. |
설명
CAnimationController 클래스는 애니메이션을 관리하는 키 클래스입니다. 애플리케이션에서 하나 이상의 애니메이션 컨트롤러 인스턴스를 만들고 필요에 따라 CAnimationController::SetRelatedWnd를 사용하여 애니메이션 컨트롤러 인스턴스를 CWnd 개체에 연결할 수 있습니다. 이 연결은 애니메이션 관리자 상태가 변경되거나 애니메이션 타이머가 업데이트될 때 WM_PAINT 메시지를 관련 창으로 자동으로 보내는 데 필요합니다. 이 관계를 사용하도록 설정하지 않으면 애니메이션을 수동으로 표시하는 창을 다시 그려야 합니다. 이를 위해 CAnimationController에서 클래스를 파생시키고 OnAnimationManagerStatusChanged 및/또는 OnAnimationTimerPostUpdate를 재정의하고 필요한 경우 하나 이상의 창을 무효화할 수 있습니다.
상속 계층 구조
CAnimationController
요구 사항
헤더: afxanimationcontroller.h
CAnimationController::~CAnimationController
소멸자입니다. 애니메이션 컨트롤러 개체가 제거될 때 호출됩니다.
virtual ~CAnimationController(void);
CAnimationController::AddAnimationObject
애니메이션 컨트롤러에 속하는 그룹에 애니메이션 개체를 추가합니다.
CAnimationGroup* AddAnimationObject(CAnimationBaseObject* pObject);
매개 변수
pObject
애니메이션 개체에 대한 포인터입니다.
Return Value
함수가 성공하면 pObject가 추가된 기존 또는 새 애니메이션 그룹에 대한 포인터입니다. pObject가 이미 다른 애니메이션 컨트롤러에 속한 그룹에 추가된 경우 NULL입니다.
설명
애니메이션 컨트롤러에 애니메이션 개체를 추가하려면 이 메서드를 호출합니다. 개체의 GroupID에 따라 개체가 그룹에 추가됩니다(CAnimationBaseObject::SetID 참조). 애니메이션 컨트롤러는 지정된 GroupID를 사용하여 추가되는 첫 번째 개체인 경우 새 그룹을 만듭니다. 애니메이션 개체는 하나의 애니메이션 컨트롤러에만 추가할 수 있습니다. 다른 컨트롤러에 개체를 추가해야 하는 경우 먼저 RemoveAnimationObject를 호출합니다. 그룹에 이미 추가된 개체에 대해 새 GroupID를 사용하여 SetID를 호출하면 개체가 이전 그룹에서 제거되고 지정된 ID가 있는 다른 그룹에 추가됩니다.
CAnimationController::AddKeyframeToGroup
그룹에 키 프레임을 추가합니다.
BOOL AddKeyframeToGroup(
UINT32 nGroupID,
CBaseKeyFrame* pKeyframe);
매개 변수
nGroupID
그룹 ID를 지정합니다.
pKeyframe
키 프레임에 대한 포인터입니다.
Return Value
함수가 성공하면 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
일반적으로 이 메서드를 호출할 필요가 없습니다. CAnimationController::CreateKeyframe을 대신 사용하여 만든 키 프레임을 만들고 그룹에 자동으로 추가합니다.
CAnimationController::AnimateGroup
애니메이션을 실행할 그룹을 준비하고 필요에 따라 예약합니다.
BOOL AnimateGroup(
UINT32 nGroupID,
BOOL bScheduleNow = TRUE);
매개 변수
nGroupID
GroupID를 지정합니다.
bScheduleNow
애니메이션을 바로 실행할지 여부를 지정합니다.
Return Value
애니메이션이 성공적으로 예약되고 실행되었으면 TRUE입니다.
설명
이 메서드는 스토리보드를 만들고, 애니메이션 변수를 추가하고, 전환을 적용하고, 키 프레임을 설정하는 실제 작업을 수행합니다. bScheduleNow를 FALSE로 설정하면 예약을 지연할 수 있습니다. 이 경우 지정된 그룹은 애니메이션에 대해 설정된 스토리보드를 보유합니다. 이 시점에서 스토리보드 및 애니메이션 변수에 대한 이벤트를 설정할 수 있습니다. 실제로 애니메이션 호출 CAnimationController::ScheduleGroup을 실행해야 하는 경우
CAnimationController::CAnimationController
애니메이션 컨트롤러를 생성합니다.
CAnimationController(void);
CAnimationController::CleanUpGroup
애니메이션이 예약되었을 때 그룹을 정리하기 위해 프레임워크에서 호출됩니다.
void CleanUpGroup(UINT32 nGroupID);
void CleanUpGroup(CAnimationGroup* pGroup);
매개 변수
nGroupID
GroupID를 지정합니다.
pGroup
정리할 애니메이션 그룹에 대한 포인터입니다.
설명
이 메서드는 애니메이션이 예약된 후에는 관련이 없으므로 지정된 그룹에서 모든 전환 및 키 프레임을 제거합니다.
CAnimationController::CreateKeyframe
전환을 사용하는 키 프레임을 만들어 지정된 그룹에 추가합니다.
CKeyFrame* CreateKeyframe(
UINT32 nGroupID,
CBaseTransition* pTransition);
CKeyFrame* CreateKeyframe(
UINT32 nGroupID,
CBaseKeyFrame* pKeyframe,
UI_ANIMATION_SECONDS offset = 0.0);
매개 변수
nGroupID
키 프레임을 만들 그룹 ID를 지정합니다.
pTransition
전환에 대한 포인터입니다. 이 전환 후 스토리보드에 키 프레임이 삽입됩니다.
pKeyframe
이 키 프레임의 기본 키 프레임에 대한 포인터입니다.
offset
pKeyframe에 지정된 기본 키 프레임에서의 오프셋(초)입니다.
Return Value
함수가 성공할 경우 새로 생성되는 키 프레임에 대한 포인터입니다.
설명
반환된 포인터를 저장하고 새로 만든 키 프레임을 다른 키 프레임의 기반으로 사용할 수 있습니다(두 번째 오버로드 참조). 키 프레임에서 전환을 시작할 수 있습니다(CBaseTransition::SetKeyframes 참조). 이런 방법으로 만든 키 프레임은 애니메이션 그룹에 의해 자동으로 삭제되기 때문에 삭제할 필요가 없습니다. 다른 키 프레임 및 전환을 기반으로 하여 키 프레임을 만들 때는 순환 참조가 발생하지 않도록 주의하세요.
CAnimationController::EnableAnimationManagerEvent
애니메이션 관리자의 상태가 변경될 때 호출할 처리기를 설정하거나 해제합니다.
virtual BOOL EnableAnimationManagerEvent(BOOL bEnable = TRUE);
매개 변수
bEnable
처리기를 설정하거나 해제할지 여부를 지정합니다.
Return Value
처리기가 성공적으로 설정되거나 해제된 경우 TRUE입니다.
설명
처리기가 설정되면(사용) 애니메이션 관리자의 상태가 변경될 때 Windows 애니메이션이 OnAnimationManagerStatusChanged를 호출합니다.
CAnimationController::EnableAnimationTimerEventHandler
타이밍 이벤트에 대한 처리기 및 타이밍 업데이트 처리기를 설정하거나 해제합니다.
virtual BOOL EnableAnimationTimerEventHandler(
BOOL bEnable = TRUE,
UI_ANIMATION_IDLE_BEHAVIOR idleBehavior = UI_ANIMATION_IDLE_BEHAVIOR_DISABLE);
매개 변수
bEnable
처리기를 설정하거나 해제할지 여부를 지정합니다.
idleBehavior
타이머 업데이트 처리기의 유휴 동작을 지정합니다.
Return Value
처리기가 성공적으로 설정되거나 해제되었으면 TRUE입니다. 이 메서드가 처리기를 먼저 해제하지 않고 두 번째로 호출되거나 다른 오류가 발생하는 경우 FALSE입니다.
설명
처리기가 설정되면(사용) Windows 애니메이션 API는 OnAnimationTimerPreUpdate, OnAnimationTimerPostUpdate, OnRenderingTooSlow 메서드를 호출합니다. Windows 애니메이션 API 업데이트 스토리보드를 허용하려면 애니메이션 타이머를 사용하도록 설정해야 합니다. 그렇지 않으면 애니메이션 관리자가 모든 애니메이션 변수의 값을 업데이트하도록 지시하기 위해 CAnimationController::UpdateAnimationManager를 호출해야 합니다.
CAnimationController::EnablePriorityComparisonHandler
예약된 스토리보드를 취소, 종료, 트리밍 또는 압축할 수 있는지 여부를 확인하기 위해 호출할 우선 순위 비교 처리기를 설정하거나 해제합니다.
virtual BOOL EnablePriorityComparisonHandler(DWORD dwHandlerType);
매개 변수
dwHandlerType
설정하거나 해제할 처리기를 지정하는 UI_ANIMATION_PHT_ 플래그(설명 참조)의 조합입니다.
Return Value
처리기가 성공적으로 설정되거나 해제된 경우 TRUE입니다.
설명
처리기가 설정되면 Windows 애니메이션은 dwHandlerType에 따라 다음 가상 메서드를 호출합니다. OnHasPriorityCancel, OnHasPriorityConclude, OnHasPriorityTrim, OnHasPriorityCompress. dwHandler는 다음과 같은 플래그의 조합일 수 있습니다. UI_ANIMATION_PHT_NONE - 모든 처리기 UI_ANIMATION_PHT_CANCEL 해제 - 비교 처리기 UI_ANIMATION_PHT_CONCLUDE 설정 - 비교 처리기 UI_ANIMATION_PHT_COMPRESS 설정 - 비교 처리기 UI_ANIMATION_PHT_TRIM 압축 설정 - 트리밍 비교 처리기 UI_ANIMATION_PHT_CANCEL_REMOVE 설정 - 비교 취소 처리기 UI_ANIMATION_PHT_CONCLUDE_REMOVE 제거 - 종료 비교 처리기 UI_ANIMATION_PHT_COMPRESS_REMOVE 제거 - 압축 비교 처리기 UI_ANIMATION_PHT_TRIM_REMOVE 제거 - 트리밍 비교 처리기 제거
CAnimationController::EnableStoryboardEventHandler
스토리보드 상태 및 업데이트 이벤트에 대한 처리기를 설정하거나 해제합니다.
virtual BOOL EnableStoryboardEventHandler(
UINT32 nGroupID,
BOOL bEnable = TRUE);
매개 변수
nGroupID
그룹 ID를 지정합니다.
bEnable
처리기를 설정하거나 해제할지 여부를 지정합니다.
Return Value
처리기가 성공적으로 설정되거나 해제되었으면 TRUE입니다. 지정한 애니메이션 그룹을 찾거나 지정된 그룹에 대한 애니메이션이 시작되지 않았고 내부 스토리보드가 NULL이면 FALSE입니다.
설명
처리기가 설정되면(사용) Windows 애니메이션 API는 OnStoryboardStatusChanges 및 OnStoryboardUpdated 가상 메서드를 호출합니다. 지정된 애니메이션 그룹에 대해 CAnimationController::Animate가 호출된 후 캡슐화된 IUIAnimationStoryboard 개체를 만들기 때문에 처리기를 설정해야 합니다.
CAnimationController::FindAnimationGroup
해당 그룹 ID로 애니메이션 그룹을 찾습니다.
CAnimationGroup* FindAnimationGroup(UINT32 nGroupID);
CAnimationGroup* FindAnimationGroup(IUIAnimationStoryboard* pStoryboard);
매개 변수
nGroupID
GroupID를 지정합니다.
pStoryboard
스토리보드에 대한 포인터입니다.
Return Value
지정된 ID를 가진 그룹을 찾을 수 없는 경우 애니메이션 그룹에 대한 포인터 또는 NULL입니다.
설명
런타임에 애니메이션 그룹을 찾으려면 이 메서드를 사용합니다. 특정 GroupID가 있는 첫 번째 애니메이션 개체가 애니메이션 컨트롤러에 추가될 때 그룹이 만들어지고 애니메이션 그룹의 내부 목록에 추가됩니다.
CAnimationController::FindAnimationObject
지정된 애니메이션 변수를 포함하는 애니메이션 개체를 찾습니다.
BOOL FindAnimationObject(
IUIAnimationVariable* pVariable,
CAnimationBaseObject** ppObject,
CAnimationGroup** ppGroup);
매개 변수
pVariable
애니메이션 변수에 대한 포인터입니다.
ppObject
출력 애니메이션 개체 또는 NULL에 대한 포인터를 포함합니다.
ppGroup
출력 애니메이션 개체 또는 NULL을 포함하는 애니메이션 그룹에 대한 포인터를 포함합니다.
Return Value
개체를 찾았으면 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
들어오는 애니메이션 변수에서 애니메이션 개체를 찾아야 하는 경우 이벤트 처리기에서 호출됩니다.
CAnimationController::gkeyframeStoryboardStart
스토리보드의 시작을 나타내는 키 프레임입니다.
static CBaseKeyFrame gkeyframeStoryboardStart;
CAnimationController::GetKeyframeStoryboardStart
스토리보드의 시작을 식별하는 키 프레임을 반환합니다.
static CBaseKeyFrame* GetKeyframeStoryboardStart();
Return Value
스토리보드의 시작을 식별하는 기본 키 프레임에 대한 포인터입니다.
설명
스토리보드가 시작되는 시점의 다른 키 프레임 또는 전환을 기반으로 하려면 이 키 프레임을 가져옵니다.
CAnimationController::GetUIAnimationManager
캡슐화된 IUIAnimationManager 개체에 대한 액세스를 제공합니다.
IUIAnimationManager* GetUIAnimationManager();
Return Value
애니메이션 관리자를 만들지 못한 경우 IUIAnimationManager 인터페이스 또는 NULL에 대한 포인터입니다.
설명
현재 OS에서 Windows 애니메이션 API를 지원하지 않는 경우 이 메서드는 NULL을 반환하고 이후 CAnimationController::IsValid에서 모든 후속 호출이 FALSE를 반환합니다. 애니메이션 컨트롤러에 의해 래핑되지 않은 인터페이스 메서드를 호출하려면 IUIAnimationManager에 액세스해야 할 수 있습니다.
CAnimationController::GetUIAnimationTimer
캡슐화된 IUIAnimationTimer 개체에 대한 액세스를 제공합니다.
IUIAnimationTimer* GetUIAnimationTimer();
Return Value
애니메이션 타이머를 만들지 못한 경우 IUIAnimationTimer 인터페이스 또는 NULL에 대한 포인터입니다.
설명
현재 OS에서 Windows 애니메이션 API를 지원하지 않는 경우 이 메서드는 NULL을 반환하고 이후 CAnimationController::IsValid에서 모든 후속 호출이 FALSE를 반환합니다.
CAnimationController::GetUITransitionFactory
전환 라이브러리를 만들지 못한 경우 IUIAnimationTransitionFactory 인터페이스 또는 NULL에 대한 포인터입니다.
IUIAnimationTransitionFactory* GetUITransitionFactory();
Return Value
전환 팩터리를 만들지 못한 경우 IUIAnimationTransitionFactory 또는 NULL에 대한 포인터입니다.
설명
현재 OS에서 Windows 애니메이션 API를 지원하지 않는 경우 이 메서드는 NULL을 반환하고 이후 CAnimationController::IsValid에서 모든 후속 호출이 FALSE를 반환합니다.
CAnimationController::GetUITransitionLibrary
캡슐화된 IUIAnimationTransitionLibrary 개체에 대한 액세스를 제공합니다.
IUIAnimationTransitionLibrary* GetUITransitionLibrary();
Return Value
전환 라이브러리를 만들지 못한 경우 IUIAnimationTransitionLibrary 인터페이스 또는 NULL에 대한 포인터입니다.
설명
현재 OS에서 Windows 애니메이션 API를 지원하지 않는 경우 이 메서드는 NULL을 반환하고 이후 CAnimationController::IsValid에서 모든 후속 호출이 FALSE를 반환합니다.
CAnimationController::IsAnimationInProgress
하나 이상의 그룹이 애니메이션을 재생하고 있는지 여부를 알려줍니다.
virtual BOOL IsAnimationInProgress();
Return Value
이 애니메이션 컨트롤러에 대해 진행 중인 애니메이션이 있는 경우 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
애니메이션 관리자의 상태를 확인하고 상태가 UI_ANIMATION_MANAGER_BUSY 경우 TRUE를 반환합니다.
CAnimationController::IsValid
애니메이션 컨트롤러가 유효한지 여부를 알려줍니다.
BOOL IsValid() const;
Return Value
애니메이션 컨트롤러가 유효한 경우 TRUE입니다. 그렇지 않으면 FALSE입니다.
설명
이 메서드는 Windows 애니메이션 API가 현재 OS에서 지원되지 않고 애니메이션 관리자가 등록되지 않아 생성에 실패한 경우에만 FALSE를 반환합니다. COM 라이브러리를 초기화한 후 GetUIAnimationManager를 한 번 이상 호출하여 이 플래그를 설정해야 합니다.
CAnimationController::m_bIsValid
애니메이션 컨트롤러가 유효한지 여부를 지정합니다. 현재 OS에서 Windows 애니메이션 API를 지원하지 않는 경우 이 멤버는 FALSE로 설정됩니다.
BOOL m_bIsValid;
CAnimationController::m_lstAnimationGroups
이 애니메이션 컨트롤러에 속하는 애니메이션 그룹의 목록입니다.
CList<CAnimationGroup*, CAnimationGroup*> m_lstAnimationGroups;
CAnimationController::m_pAnimationManager
Animation Manager COM 개체에 대한 포인터를 저장합니다.
ATL::CComPtr<IUIAnimationManager> m_pAnimationManager;
CAnimationController::m_pAnimationTimer
Animation Timer COM 개체에 대한 포인터를 저장합니다.
ATL::CComPtr<IUIAnimationTimer> m_pAnimationTimer;
CAnimationController::m_pRelatedWnd
애니메이션 관리자의 상태가 변경되거나 업데이트 후 이벤트가 발생할 때 자동으로 다시 그릴 수 있는 관련 CWnd 개체에 대한 포인터입니다. NULL일 수 있습니다.
CWnd* m_pRelatedWnd;
CAnimationController::m_pTransitionFactory
Transition Factory COM 개체에 대한 포인터를 저장합니다.
ATL::CComPtr<IUIAnimationTransitionFactory> m_pTransitionFactory;
CAnimationController::m_pTransitionLibrary
전환 라이브러리 COM 개체에 대한 포인터를 저장합니다.
ATL::CComPtr<IUIAnimationTransitionLibrary> m_pTransitionLibrary;
CAnimationController::OnAfterSchedule
지정된 그룹에 대한 애니메이션이 방금 예약된 경우 프레임워크에서 호출됩니다.
virtual void OnAfterSchedule(CAnimationGroup* pGroup);
매개 변수
pGroup
예약된 애니메이션 그룹에 대한 포인터입니다.
설명
기본 구현은 지정된 그룹에서 키 프레임을 제거하고 지정된 그룹에 속한 애니메이션 변수에서 전환합니다. 파생 클래스에서 재정의하여 애니메이션 일정에 따라 추가 작업을 수행할 수 있습니다.
CAnimationController::OnAnimationIntegerValueChanged
애니메이션 변수의 정수 값이 변경된 경우 프레임워크에서 호출됩니다.
virtual void OnAnimationIntegerValueChanged(
CAnimationGroup* pGroup,
CAnimationBaseObject* pObject,
IUIAnimationVariable* variable,
INT32 newValue,
INT32 prevValue);
매개 변수
pGroup
값이 변경된 애니메이션 개체를 보유하는 애니메이션 그룹에 대한 포인터입니다.
pObject
값이 변경된 애니메이션 변수가 포함된 애니메이션 개체에 대한 포인터입니다.
variable
애니메이션 변수에 대한 포인터입니다.
newValue
새 값을 지정합니다.
prevValue
이전 값을 지정합니다.
설명
이 메서드는 특정 애니메이션 변수 또는 애니메이션 개체에 대해 호출된 EnableIntegerValueChangedEvent를 사용하여 애니메이션 변수 이벤트를 사용하도록 설정하는 경우 호출됩니다. 애플리케이션별 작업을 수행하기 위해 파생된 클래스에서 재정의될 수 있습니다.
CAnimationController::OnAnimationManagerStatusChanged
애니메이션 관리자의 StatusChanged 이벤트에 대한 응답으로 프레임워크에서 호출됩니다.
virtual void OnAnimationManagerStatusChanged(
UI_ANIMATION_MANAGER_STATUS newStatus,
UI_ANIMATION_MANAGER_STATUS previousStatus);
매개 변수
newStatus
새 애니메이션 관리자 상태입니다.
previousStatus
이전 애니메이션 관리자 상태입니다.
설명
EnableAnimationManagerEvent에서 애니메이션 관리자 이벤트를 사용하도록 설정하면 이 메서드가 호출됩니다. 애플리케이션별 작업을 수행하기 위해 파생된 클래스에서 재정의될 수 있습니다. SetRelatedWnd로 설정된 경우 기본 구현은 관련 창을 업데이트합니다.
CAnimationController::OnAnimationTimerPostUpdate
애니메이션 업데이트가 완료된 후 프레임워크에서 호출됩니다.
virtual void OnAnimationTimerPostUpdate();
설명
이 메서드는 EnableAnimationTimerEventHandler를 사용하여 타이머 이벤트 처리기를 사용하도록 설정하는 경우 호출됩니다. 애플리케이션별 작업을 수행하기 위해 파생된 클래스에서 재정의될 수 있습니다.
CAnimationController::OnAnimationTimerPreUpdate
애니메이션 업데이트가 시작되기 전에 프레임워크에서 호출됩니다.
virtual void OnAnimationTimerPreUpdate();
설명
이 메서드는 EnableAnimationTimerEventHandler를 사용하여 타이머 이벤트 처리기를 사용하도록 설정하는 경우 호출됩니다. 애플리케이션별 작업을 수행하기 위해 파생된 클래스에서 재정의될 수 있습니다.
CAnimationController::OnAnimationTimerRenderingTooSlow
애니메이션의 렌더링 프레임 속도가 최소 바람직한 프레임 속도보다 낮을 때 프레임워크에서 호출됩니다.
virtual void OnAnimationTimerRenderingTooSlow(UINT32 fps);
매개 변수
fps
초당 프레임 단위의 현재 프레임 속도입니다.
설명
이 메서드는 EnableAnimationTimerEventHandler를 사용하여 타이머 이벤트 처리기를 사용하도록 설정하는 경우 호출됩니다. 애플리케이션별 작업을 수행하기 위해 파생된 클래스에서 재정의될 수 있습니다. 최소 바람직한 프레임 속도는 IUIAnimationTimer::SetFrameRateThreshold를 호출하여 지정됩니다.
CAnimationController::OnAnimationValueChanged
애니메이션 변수의 값이 변경되면 프레임워크에서 호출됩니다.
virtual void OnAnimationValueChanged(
CAnimationGroup* pGroup,
CAnimationBaseObject* pObject,
IUIAnimationVariable* variable,
DOUBLE newValue,
DOUBLE prevValue);
매개 변수
pGroup
값이 변경된 애니메이션 개체를 보유하는 애니메이션 그룹에 대한 포인터입니다.
pObject
값이 변경된 애니메이션 변수가 포함된 애니메이션 개체에 대한 포인터입니다.
variable
애니메이션 변수에 대한 포인터입니다.
newValue
새 값을 지정합니다.
prevValue
이전 값을 지정합니다.
설명
이 메서드는 특정 애니메이션 변수 또는 애니메이션 개체에 대해 호출된 EnableValueChangedEvent를 사용하여 애니메이션 변수 이벤트를 사용하도록 설정하는 경우 호출됩니다. 애플리케이션별 작업을 수행하기 위해 파생된 클래스에서 재정의될 수 있습니다.
CAnimationController::OnBeforeAnimationStart
애니메이션이 예약되기 직전에 프레임워크에서 호출됩니다.
virtual void OnBeforeAnimationStart(CAnimationGroup* pGroup);
매개 변수
pGroup
애니메이션이 시작하려고 하는 애니메이션 그룹에 대한 포인터입니다.
설명
이 호출은 관련 CWnd로 라우팅되며 지정된 그룹에 대한 애니메이션이 시작되기 전에 추가 작업을 수행하기 위해 파생 클래스에서 재정의할 수 있습니다.
CAnimationController::OnHasPriorityCancel
일정 충돌을 해결하기 위해 프레임워크에 의해 호출됩니다.
virtual BOOL OnHasPriorityCancel(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
매개 변수
pGroupScheduled
현재 예약된 스토리보드를 소유하고 있는 그룹입니다.
pGroupNew
pGroupScheduled에서 소유한 예약된 스토리보드와 충돌을 예약하고 있는 새 스토리보드를 소유하는 그룹입니다.
priorityEffect
pGroupScheduled에 높은 우선 순위가 있는 경우 pGroupNew에서 발생할 수 있는 효과입니다.
Return Value
pGroupNew에서 소유한 스토리보드가 우선인 경우 TRUE를 반환해야 합니다. pGroupScheduled에서 소유한 스토리보드가 우선인 경우 FALSE를 반환해야 합니다.
설명
이 메서드는 CAnimationController::EnablePriorityComparisonHandler를 사용하여 우선 순위 비교 이벤트를 활성화하고 UI_ANIMATION_PHT_CANCEL을 지정하는 경우 호출됩니다. 애플리케이션별 작업을 수행하기 위해 파생된 클래스에서 재정의될 수 있습니다. 충돌 관리에 대한 자세한 내용은 Windows 애니메이션 API 설명서를 참조하세요.
CAnimationController::OnHasPriorityCompress
일정 충돌을 해결하기 위해 프레임워크에 의해 호출됩니다.
virtual BOOL OnHasPriorityCompress(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
매개 변수
pGroupScheduled
현재 예약된 스토리보드를 소유하고 있는 그룹입니다.
pGroupNew
pGroupScheduled에서 소유한 예약된 스토리보드와 충돌을 예약하고 있는 새 스토리보드를 소유하는 그룹입니다.
priorityEffect
pGroupScheduled에 높은 우선 순위가 있는 경우 pGroupNew에서 발생할 수 있는 효과입니다.
Return Value
pGroupNew에서 소유한 스토리보드가 우선인 경우 TRUE를 반환해야 합니다. pGroupScheduled에서 소유한 스토리보드가 우선인 경우 FALSE를 반환해야 합니다.
설명
이 메서드는 CAnimationController::EnablePriorityComparisonHandler를 사용하여 우선 순위 비교 이벤트를 활성화하고 UI_ANIMATION_PHT_COMPRESS를 지정하는 경우 호출됩니다. 애플리케이션별 작업을 수행하기 위해 파생된 클래스에서 재정의될 수 있습니다. 충돌 관리에 대한 자세한 내용은 Windows 애니메이션 API 설명서를 참조하세요.
CAnimationController::OnHasPriorityConclude
일정 충돌을 해결하기 위해 프레임워크에 의해 호출됩니다.
virtual BOOL OnHasPriorityConclude(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
매개 변수
pGroupScheduled
현재 예약된 스토리보드를 소유하고 있는 그룹입니다.
pGroupNew
pGroupScheduled에서 소유한 예약된 스토리보드와 충돌을 예약하고 있는 새 스토리보드를 소유하는 그룹입니다.
priorityEffect
pGroupScheduled에 높은 우선 순위가 있는 경우 pGroupNew에서 발생할 수 있는 효과입니다.
Return Value
pGroupNew에서 소유한 스토리보드가 우선인 경우 TRUE를 반환해야 합니다. pGroupScheduled에서 소유한 스토리보드가 우선인 경우 FALSE를 반환해야 합니다.
설명
이 메서드는 CAnimationController::EnablePriorityComparisonHandler를 사용하여 우선 순위 비교 이벤트를 활성화하고 UI_ANIMATION_PHT_TRIM을 지정하는 경우 호출됩니다. 애플리케이션별 작업을 수행하기 위해 파생된 클래스에서 재정의될 수 있습니다. 충돌 관리에 대한 자세한 내용은 Windows 애니메이션 API 설명서를 참조하세요.
CAnimationController::OnHasPriorityTrim
일정 충돌을 해결하기 위해 프레임워크에 의해 호출됩니다.
virtual BOOL OnHasPriorityTrim(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
매개 변수
pGroupScheduled
현재 예약된 스토리보드를 소유하고 있는 그룹입니다.
pGroupNew
pGroupScheduled에서 소유한 예약된 스토리보드와 충돌을 예약하고 있는 새 스토리보드를 소유하는 그룹입니다.
priorityEffect
pGroupScheduled에 높은 우선 순위가 있는 경우 pGroupNew에서 발생할 수 있는 효과입니다.
Return Value
pGroupNew에서 소유한 스토리보드가 우선인 경우 TRUE를 반환해야 합니다. pGroupScheduled에서 소유한 스토리보드가 우선인 경우 FALSE를 반환해야 합니다.
설명
이 메서드는 CAnimationController::EnablePriorityComparisonHandler를 사용하여 우선 순위 비교 이벤트를 활성화하고 UI_ANIMATION_PHT_TRIM을 지정하는 경우 호출됩니다. 애플리케이션별 작업을 수행하기 위해 파생된 클래스에서 재정의될 수 있습니다. 충돌 관리에 대한 자세한 내용은 Windows 애니메이션 API 설명서를 참조하세요.
CAnimationController::OnStoryboardStatusChanged
스토리보드 상태가 변경될 때 프레임워크에서 호출됩니다.
virtual void OnStoryboardStatusChanged(
CAnimationGroup* pGroup,
UI_ANIMATION_STORYBOARD_STATUS newStatus,
UI_ANIMATION_STORYBOARD_STATUS previousStatus);
매개 변수
pGroup
상태가 변경된 스토리보드를 소유하는 애니메이션 그룹에 대한 포인터입니다.
newStatus
새 상태를 지정합니다.
previousStatus
이전 상태를 지정합니다.
설명
CAnimationController::EnableStoryboardEventHandler를 사용하여 스토리보드 이벤트를 사용하도록 설정하면 이 메서드가 호출됩니다. 애플리케이션별 작업을 수행하기 위해 파생된 클래스에서 재정의될 수 있습니다.
CAnimationController::OnStoryboardUpdated
스토리보드가 업데이트되었을 때 프레임워크에서 호출됩니다.
virtual void OnStoryboardUpdated(CAnimationGroup* pGroup);
매개 변수
pGroup
스토리보드를 소유하는 그룹에 대한 포인터입니다.
설명
CAnimationController::EnableStoryboardEventHandler를 사용하여 스토리보드 이벤트를 사용하도록 설정하면 이 메서드가 호출됩니다. 애플리케이션별 작업을 수행하기 위해 파생된 클래스에서 재정의될 수 있습니다.
CAnimationController::RemoveAllAnimationGroups
애니메이션 컨트롤러에서 모든 애니메이션 그룹을 제거합니다.
void RemoveAllAnimationGroups();
설명
모든 그룹이 삭제되고 애플리케이션 수준에 저장된 경우 해당 포인터를 무효화해야 합니다. 삭제되는 그룹의 CAnimationGroup::m_bAutodestroyAnimationObjects TRUE이면 해당 그룹에 속한 모든 애니메이션 개체가 삭제됩니다. 그렇지 않으면 부모 애니메이션 컨트롤러에 대한 참조가 NULL로 설정되고 다른 컨트롤러에 추가할 수 있습니다.
CAnimationController::RemoveAnimationGroup
애니메이션 컨트롤러에서 지정된 ID를 가진 애니메이션 그룹을 제거합니다.
void RemoveAnimationGroup(UINT32 nGroupID);
매개 변수
nGroupID
애니메이션 그룹 ID를 지정합니다.
설명
이 메서드는 내부 그룹 목록에서 애니메이션 그룹을 제거하고 삭제하므로 해당 애니메이션 그룹에 대한 포인터를 저장한 경우 무효화해야 합니다. CAnimationGroup::m_bAutodestroyAnimationObjects TRUE이면 해당 그룹에 속한 모든 애니메이션 개체가 삭제됩니다. 그렇지 않으면 부모 애니메이션 컨트롤러에 대한 참조가 NULL로 설정되고 다른 컨트롤러에 추가할 수 있습니다.
CAnimationController::RemoveAnimationObject
애니메이션 컨트롤러에서 애니메이션 개체를 제거합니다.
void RemoveAnimationObject(
CAnimationBaseObject* pObject,
BOOL bNoDelete = FALSE);
매개 변수
pObject
애니메이션 개체에 대한 포인터입니다.
bNoDelete
이 매개 변수가 TRUE이면 제거 시 개체가 삭제되지 않습니다.
설명
애니메이션 컨트롤러 및 애니메이션 그룹에서 애니메이션 개체를 제거합니다. 특정 개체에 더 이상 애니메이션 효과를 주지 않아야 하거나 개체를 다른 애니메이션 컨트롤러로 이동해야 하는 경우 이 함수를 호출합니다. 마지막 경우 bNoDelete는 TRUE여야 합니다.
CAnimationController::RemoveTransitions
지정된 그룹에 속하는 애니메이션 개체에서 전환을 제거합니다.
void RemoveTransitions(UINT32 nGroupID);
매개 변수
nGroupID
그룹 ID를 지정합니다.
설명
그룹은 해당 애니메이션 개체를 반복하고 각 애니메이션 개체에 대해 ClearTransitions(FALSE)를 호출합니다. 이 메서드는 애니메이션이 예약된 후 프레임워크에서 호출됩니다.
CAnimationController::ScheduleGroup
애니메이션을 예약합니다.
BOOL ScheduleGroup(
UINT32 nGroupID,
UI_ANIMATION_SECONDS time = 0.0);
매개 변수
nGroupID
예약할 애니메이션 그룹 ID를 지정합니다.
time
예약할 시간을 지정합니다.
Return Value
애니메이션이 성공적으로 예약된 경우 TRUE입니다. storyboard가 만들어지지 않았거나 다른 오류가 발생하는 경우 FALSE입니다.
설명
매개 변수 bScheduleNow가 FALSE 이전 ScheduleGroup으로 설정된 AnimateGroup을 호출해야 합니다. IUIAnimationTimer::GetTime에서 가져온 원하는 애니메이션 시간을 지정할 수 있습니다. 시간 매개 변수가 0.0이면 애니메이션이 현재 시간으로 예약됩니다.
CAnimationController::SetRelatedWnd
애니메이션 컨트롤러와 창 간의 관계를 설정합니다.
void SetRelatedWnd(CWnd* pWnd);
매개 변수
pWnd
설정할 창 개체에 대한 포인터입니다.
설명
관련 CWnd 개체가 설정된 경우 애니메이션 관리자의 상태가 변경되거나 업데이트 후 타이머 이벤트가 발생하면 애니메이션 컨트롤러가 자동으로 업데이트(메시지 WM_PAINT 보내기)할 수 있습니다.
CAnimationController::UpdateAnimationManager
애니메이션 관리자에게 모든 애니메이션 변수의 값을 업데이트하도록 지시합니다.
virtual void UpdateAnimationManager();
설명
이 메서드를 호출하면 애니메이션 관리자가 현재 시간으로 이동하여 필요에 따라 스토리보드의 상태를 변경하고 애니메이션 변수를 적절한 보간된 값으로 업데이트합니다. 내부적으로 이 메서드는 IUIAnimationTimer::GetTime(timeNow) 및 IUIAnimationManager::Update(timeNow)를 호출합니다. 파생 클래스에서 이 메서드를 재정의하여 이 동작을 사용자 지정합니다.