Udostępnij za pośrednictwem


Klasa CAnimationController

Implementuje kontroler animacji, który zapewnia centralny interfejs do tworzenia animacji i zarządzania nimi.

Składnia

class CAnimationController : public CObject;

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CAnimationController::CAnimationController Tworzy kontroler animacji.
CAnimationController::~CAnimationController Destruktora. Wywoływana, gdy obiekt kontrolera animacji jest niszczony.

Metody publiczne

Nazwa/nazwisko opis
CAnimationController::AddAnimationObject Dodaje obiekt animacji do grupy należącej do kontrolera animacji.
CAnimationController::AddKeyframeToGroup Dodaje ramkę kluczową do grupy.
CAnimationController::AnimateGroup Przygotowuje grupę do uruchamiania animacji i opcjonalnie planuje ją.
CAnimationController::CleanUpGroup Przeciążone. Wywoływana przez platformę w celu oczyszczenia grupy po zaplanowaniu animacji.
CAnimationController::CreateKeyframe Przeciążone. Tworzy ramkę kluczową, która zależy od przejścia i dodaje ją do określonej grupy.
CAnimationController::EnableAnimationManagerEvent Ustawia lub zwalnia procedurę obsługi w celu wywołania zmiany stanu menedżera animacji.
CAnimationController::EnableAnimationTimerEventHandler Ustawia lub zwalnia program obsługi zdarzeń chronometrażu i procedury obsługi aktualizacji chronometrażu.
CAnimationController::EnablePriorityComparisonHandler Ustawia lub zwalnia program obsługi porównania priorytetów w celu określenia, czy zaplanowany scenorys może zostać anulowany, zakończony, przycięty lub skompresowany.
CAnimationController::EnableStoryboardEventHandler Ustawia lub zwalnia procedurę obsługi stanu scenorysu i zdarzeń aktualizacji.
CAnimationController::FindAnimationGroup Przeciążone. Znajduje grupę animacji według jej scenorysu.
CAnimationController::FindAnimationObject Znajduje obiekt animacji zawierający określoną zmienną animacji.
CAnimationController::GetKeyframeStoryboardStart Zwraca ramkę kluczową, która identyfikuje początek scenorysu.
CAnimationController::GetUIAnimationManager Zapewnia dostęp do hermetyzowanego obiektu IUIAnimationManager.
CAnimationController::GetUIAnimationTimer Zapewnia dostęp do hermetyzowanego obiektu IUIAnimationTimer.
CAnimationController::GetUITransitionFactory Wskaźnik do interfejsu IUIAnimationTransitionFactory lub null, jeśli tworzenie biblioteki przejścia nie powiodło się.
CAnimationController::GetUITransitionLibrary Zapewnia dostęp do hermetyzowanego obiektu IUIAnimationTransitionLibrary.
CAnimationController::IsAnimationInProgress Informuje, czy co najmniej jedna grupa odtwarza animację.
CAnimationController::IsValid Informuje, czy kontroler animacji jest prawidłowy.
CAnimationController::OnAnimationIntegerValueChanged Wywoływana przez platformę, gdy wartość całkowita zmiennej animacji uległa zmianie.
CAnimationController::OnAnimationManagerStatusChanged Wywoływana przez strukturę w odpowiedzi na zdarzenie StatusChanged z menedżera animacji.
CAnimationController::OnAnimationTimerPostUpdate Wywoływana przez strukturę po zakończeniu aktualizacji animacji.
CAnimationController::OnAnimationTimerPreUpdate Wywoływana przez strukturę przed rozpoczęciem aktualizacji animacji.
CAnimationController::OnAnimationTimerRenderingTooSlow Wywoływana przez platformę, gdy szybkość renderowania klatek na animację spadnie poniżej minimalnej pożądanej szybkości klatek.
CAnimationController::OnAnimationValueChanged Wywoływana przez strukturę, gdy wartość zmiennej animacji uległa zmianie.
CAnimationController::OnBeforeAnimationStart Wywoływana przez strukturę bezpośrednio przed zaplanowaną animacją.
CAnimationController::OnHasPriorityCancel Wywoływana przez platformę w celu rozwiązania konfliktów planowania.
CAnimationController::OnHasPriorityCompress Wywoływana przez platformę w celu rozwiązania konfliktów planowania.
CAnimationController::OnHasPriorityConclude Wywoływana przez platformę w celu rozwiązania konfliktów planowania.
CAnimationController::OnHasPriorityTrim Wywoływana przez platformę w celu rozwiązania konfliktów planowania.
CAnimationController::OnStoryboardStatusChanged Wywoływana przez strukturę, gdy stan scenorysu uległ zmianie.
CAnimationController::OnStoryboardUpdated Wywoływana przez platformę po zaktualizowaniu scenorysu.
CAnimationController::RemoveAllAnimationGroups Usuwa wszystkie grupy animacji z kontrolera animacji.
CAnimationController::RemoveAnimationGroup Usuwa grupę animacji z określonym identyfikatorem z kontrolera animacji.
CAnimationController::RemoveAnimationObject Usuń obiekt animacji z kontrolera animacji.
CAnimationController::RemoveTransitions Usuwa przejścia z obiektów animacji należących do określonej grupy.
CAnimationController::ScheduleGroup Planuje animację.
CAnimationController::SetRelatedWnd Ustanawia relację między kontrolerem animacji a oknem.
CAnimationController::UpdateAnimationManager Przekierowuje menedżera animacji w celu zaktualizowania wartości wszystkich zmiennych animacji.

Metody chronione

Nazwa/nazwisko opis
CAnimationController::CleanUpGroup Przeciążone. Pomocnik, który czyści grupę.
CAnimationController::OnAfterSchedule Wywoływana przez platformę, gdy zaplanowano animację dla określonej grupy.

Chronione składowe danych

Nazwa/nazwisko opis
CAnimationController::gkeyframeStoryboardStart Ramka kluczowa reprezentująca początek scenorysu.
CAnimationController::m_bIsValid Określa, czy kontroler animacji jest prawidłowy, czy nie. Ten element członkowski ma wartość FALSE, jeśli bieżący system operacyjny nie obsługuje interfejsu API animacji systemu Windows.
CAnimationController::m_lstAnimationGroups Lista grup animacji należących do tego kontrolera animacji.
CAnimationController::m_pAnimationManager Przechowuje wskaźnik do obiektu COM menedżera animacji.
CAnimationController::m_pAnimationTimer Przechowuje wskaźnik do obiektu COM czasomierza animacji.
CAnimationController::m_pRelatedWnd Wskaźnik do powiązanego obiektu CWnd, który może być automatycznie ponownie rysowany po zmianie stanu menedżera animacji lub po aktualizacji zdarzenia. Może mieć wartość NULL.
CAnimationController::m_pTransitionFactory Przechowuje wskaźnik do obiektu COM usługi Transition Factory.
CAnimationController::m_pTransitionLibrary Przechowuje wskaźnik do obiektu COM biblioteki przejściowej.

Uwagi

Klasa CAnimationController jest klasą klucza, która zarządza animacjami. Możesz utworzyć co najmniej jedno wystąpienie kontrolera animacji w aplikacji i opcjonalnie połączyć wystąpienie kontrolera animacji z obiektem CWnd przy użyciu CAnimationController::SetRelatedWnd. To połączenie jest wymagane do automatycznego wysyłania komunikatów WM_PAINT do powiązanego okna po zmianie stanu menedżera animacji lub zaktualizowaniu czasomierza animacji. Jeśli nie włączysz tej relacji, musisz ponownie wyrysować okno, w którym zostanie wyświetlona animacja ręcznie. W tym celu można utworzyć klasę z CAnimationController i zastąpić OnAnimationManagerStatusChanged i/lub OnAnimationTimerPostUpdate i unieważnić co najmniej jeden windows, gdy jest to konieczne.

Hierarchia dziedziczenia

Obiekt CObject

CAnimationController

Wymagania

Nagłówek: afxanimationcontroller.h

CAnimationController::~CAnimationController

Destruktora. Wywoływana, gdy obiekt kontrolera animacji jest niszczony.

virtual ~CAnimationController(void);

CAnimationController::AddAnimationObject

Dodaje obiekt animacji do grupy należącej do kontrolera animacji.

CAnimationGroup* AddAnimationObject(CAnimationBaseObject* pObject);

Parametry

pObject
Wskaźnik do obiektu animacji.

Wartość zwracana

Wskaźnik do istniejącej lub nowej grupy animacji, w której obiekt pObject został dodany, jeśli funkcja powiedzie się; Wartość NULL, jeśli obiekt pObject został już dodany do grupy należącej do innego kontrolera animacji.

Uwagi

Wywołaj tę metodę, aby dodać obiekt animacji do kontrolera animacji. Obiekt zostanie dodany do grupy zgodnie z identyfikatorem GroupID obiektu (zobacz CAnimationBaseObject::SetID). Kontroler animacji utworzy nową grupę, jeśli jest to pierwszy obiekt dodawany przy użyciu określonego identyfikatora GroupID. Obiekt animacji można dodać tylko do jednego kontrolera animacji. Jeśli musisz dodać obiekt do innego kontrolera, najpierw wywołaj metodę RemoveAnimationObject. Jeśli wywołasz metodę SetID z nowym identyfikatorem grupy dla obiektu, który został już dodany do grupy, obiekt zostanie usunięty ze starej grupy i dodany do innej grupy o określonym identyfikatorze.

CAnimationController::AddKeyframeToGroup

Dodaje ramkę kluczową do grupy.

BOOL AddKeyframeToGroup(
    UINT32 nGroupID,
    CBaseKeyFrame* pKeyframe);

Parametry

nGroupID
Określa identyfikator grupy.

pKeyframe
Wskaźnik do ramki kluczy.

Wartość zwracana

WARTOŚĆ TRUE, jeśli funkcja powiedzie się; w przeciwnym razie FAŁSZ.

Uwagi

Zwykle nie trzeba wywoływać tej metody, zamiast tego należy użyć CAnimationController::CreateKeyframe, która tworzy i dodaje utworzoną ramkę kluczową do grupy automatycznie.

CAnimationController::AnimateGroup

Przygotowuje grupę do uruchamiania animacji i opcjonalnie planuje ją.

BOOL AnimateGroup(
    UINT32 nGroupID,
    BOOL bScheduleNow = TRUE);

Parametry

nGroupID
Określa Identyfikator grupy.

bScheduleNow
Określa, czy od razu uruchamiać animację.

Wartość zwracana

Wartość TRUE, jeśli animacja została pomyślnie zaplanowana i uruchomiona.

Uwagi

Ta metoda wykonuje rzeczywistą pracę podczas tworzenia scenorysu, dodawania zmiennych animacji, stosowania przejść i ustawiania ramek kluczowych. Istnieje możliwość opóźnienia planowania, jeśli ustawisz wartość bScheduleNow na WARTOŚĆ FALSE. W takim przypadku określona grupa będzie przechowywać scenorys, który został skonfigurowany do animacji. W tym momencie można skonfigurować zdarzenia dla zmiennych scenorysu i animacji. W rzeczywistości musisz uruchomić wywołanie animacji CAnimationController::ScheduleGroup.

CAnimationController::CAnimationController

Tworzy kontroler animacji.

CAnimationController(void);

CAnimationController::CleanUpGroup

Wywoływana przez platformę w celu oczyszczenia grupy po zaplanowaniu animacji.

void CleanUpGroup(UINT32 nGroupID);
void CleanUpGroup(CAnimationGroup* pGroup);

Parametry

nGroupID
Określa Identyfikator grupy.

PGroup
Wskaźnik do grupy animacji do czyszczenia.

Uwagi

Ta metoda usuwa wszystkie przejścia i ramki kluczowe z określonej grupy, ponieważ nie są one istotne po zaplanowaniu animacji.

CAnimationController::CreateKeyframe

Tworzy ramkę kluczową, która zależy od przejścia i dodaje ją do określonej grupy.

CKeyFrame* CreateKeyframe(
    UINT32 nGroupID,
    CBaseTransition* pTransition);

CKeyFrame* CreateKeyframe(
    UINT32 nGroupID,
    CBaseKeyFrame* pKeyframe,
    UI_ANIMATION_SECONDS offset = 0.0);

Parametry

nGroupID
Określa identyfikator grupy, dla której jest tworzona ramka kluczowa.

pTransition
Wskaźnik do przejścia. Ramka kluczowa zostanie wstawiona do scenorysu po tym przejściu.

pKeyframe
Wskaźnik do podstawowej ramki kluczy dla tej ramki kluczy.

offset
Przesunięcie w sekundach z podstawowej ramki kluczy określonej przez pKeyframe.

Wartość zwracana

Wskaźnik do nowo utworzonej ramki kluczy, jeśli funkcja powiedzie się.

Uwagi

Zwrócony wskaźnik i inne ramki kluczowe można przechowywać na nowo utworzonej ramce kluczy (zobacz drugie przeciążenie). Istnieje możliwość rozpoczęcia przejść w ramkach kluczowych — zobacz CBaseTransition::SetKeyframes. Nie musisz usuwać ramek kluczowych utworzonych w ten sposób, ponieważ są one usuwane automatycznie przez grupy animacji. Należy zachować ostrożność podczas tworzenia ramek kluczowych w oparciu o inne ramki kluczowe i przejścia oraz unikać odwołań cyklicznych.

CAnimationController::EnableAnimationManagerEvent

Ustawia lub zwalnia procedurę obsługi w celu wywołania zmiany stanu menedżera animacji.

virtual BOOL EnableAnimationManagerEvent(BOOL bEnable = TRUE);

Parametry

bEnable
Określa, czy należy ustawić, czy zwolnić program obsługi.

Wartość zwracana

WARTOŚĆ TRUE, jeśli procedura obsługi została pomyślnie ustawiona lub wydana.

Uwagi

Po ustawieniu programu obsługi (włączonej) animacja systemu Windows wywołuje metodę OnAnimationManagerStatusChanged, gdy stan menedżera animacji ulegnie zmianie.

CAnimationController::EnableAnimationTimerEventHandler

Ustawia lub zwalnia program obsługi zdarzeń chronometrażu i procedury obsługi aktualizacji chronometrażu.

virtual BOOL EnableAnimationTimerEventHandler(
    BOOL bEnable = TRUE,
    UI_ANIMATION_IDLE_BEHAVIOR idleBehavior = UI_ANIMATION_IDLE_BEHAVIOR_DISABLE);

Parametry

bEnable
Określa, czy należy ustawić, czy zwolnić programy obsługi.

idleBehavior
Określa zachowanie bezczynności programu obsługi aktualizacji czasomierza.

Wartość zwracana

Wartość TRUE, jeśli programy obsługi zostały pomyślnie ustawione lub zwolnione; FAŁSZ, jeśli ta metoda jest wywoływana po raz drugi bez uprzedniego zwolnienia procedur obsługi lub jeśli wystąpi inny błąd.

Uwagi

Gdy programy obsługi są ustawione (włączone) interfejs API animacji systemu Windows wywołuje metody OnAnimationTimerPreUpdate, OnAnimationTimerPostUpdate, OnRenderingTooSlow. Należy włączyć czasomierze animacji, aby umożliwić scenorysom aktualizacji interfejsu API animacji systemu Windows. W przeciwnym razie należy wywołać CAnimationController::UpdateAnimationManager, aby skierować menedżera animacji do zaktualizowania wartości wszystkich zmiennych animacji.

CAnimationController::EnablePriorityComparisonHandler

Ustawia lub zwalnia program obsługi porównania priorytetów w celu określenia, czy zaplanowany scenorys może zostać anulowany, zakończony, przycięty lub skompresowany.

virtual BOOL EnablePriorityComparisonHandler(DWORD dwHandlerType);

Parametry

dwHandlerType
Kombinacja flag UI_ANIMATION_PHT_ (patrz uwagi), która określa programy obsługi do ustawienia lub wydania.

Wartość zwracana

WARTOŚĆ TRUE, jeśli procedura obsługi została pomyślnie ustawiona lub wydana.

Uwagi

Po ustawieniu (włączonej) animacji systemu Windows program obsługi wywołuje następujące metody wirtualne w zależności od właściwości dwHandlerType: OnHasPriorityCancel, OnHasPriorityConclude, OnHasPriorityTrim, OnHasPriorityCompress. DwHandler może być kombinacją następujących flag: UI_ANIMATION_PHT_NONE — zwolnij wszystkie programy obsługi UI_ANIMATION_PHT_CANCEL — ustaw UI_ANIMATION_PHT_CONCLUDE obsługi porównania Anulowania — ustaw UI_ANIMATION_PHT_COMPRESS obsługi porównania podsumowań — ustaw UI_ANIMATION_PHT_TRIM programu obsługi porównania kompresowania — ustaw procedurę obsługi porównania przycinania UI_ANIMATION_PHT_CANCEL_REMOVE — usuń procedurę obsługi porównania anulowania UI_ANIMATION_PHT_CONCLUDE_REMOVE — usuń UI_ANIMATION_PHT_COMPRESS_REMOVE obsługi porównania podsumowania — remove Compress comparison handler UI_ANIMATION_PHT_TRIM_REMOVE - remove Trim comparison handler (Usuwanie procedury obsługi porównania przycinania)

CAnimationController::EnableStoryboardEventHandler

Ustawia lub zwalnia procedurę obsługi stanu scenorysu i zdarzeń aktualizacji.

virtual BOOL EnableStoryboardEventHandler(
    UINT32 nGroupID,
    BOOL bEnable = TRUE);

Parametry

nGroupID
Określa identyfikator grupy.

bEnable
Określa, czy należy ustawić, czy zwolnić program obsługi.

Wartość zwracana

WARTOŚĆ TRUE, jeśli procedura obsługi została pomyślnie ustawiona lub wydana; FAŁSZ, jeśli określona grupa animacji jest teraz znaleziona lub animacja dla określonej grupy nie została zainicjowana, a jej wewnętrzny scenorys ma wartość NULL.

Uwagi

Gdy program obsługi jest ustawiony (włączony) interfejs API animacji systemu Windows wywołuje metody wirtualne OnStoryboardStatusChanges i OnStoryboardUpdated. Program obsługi musi być ustawiony po wywołaniu elementu CAnimationController::Animowanie dla określonej grupy animacji, ponieważ tworzy hermetyzowany obiekt IUIAnimationStoryboard.

CAnimationController::FindAnimationGroup

Znajduje grupę animacji według jej identyfikatora grupy.

CAnimationGroup* FindAnimationGroup(UINT32 nGroupID);
CAnimationGroup* FindAnimationGroup(IUIAnimationStoryboard* pStoryboard);

Parametry

nGroupID
Określa identyfikator grupy.

pStoryboard
Wskaźnik do scenorysu.

Wartość zwracana

Wskaźnik do grupy animacji lub wartości NULL, jeśli grupa o określonym identyfikatorze nie zostanie znaleziona.

Uwagi

Użyj tej metody, aby znaleźć grupę animacji w czasie wykonywania. Grupa jest tworzona i dodawana do wewnętrznej listy grup animacji po dodaniu pierwszego obiektu animacji o określonym identyfikatorze GroupID do kontrolera animacji.

CAnimationController::FindAnimationObject

Znajduje obiekt animacji zawierający określoną zmienną animacji.

BOOL FindAnimationObject(
    IUIAnimationVariable* pVariable,
    CAnimationBaseObject** ppObject,
    CAnimationGroup** ppGroup);

Parametry

Zmienna
Wskaźnik do zmiennej animacji.

ppObject
Wyjście. Zawiera wskaźnik do obiektu animacji lub wartości NULL.

ppGroup
Wyjście. Zawiera wskaźnik do grupy animacji, która zawiera obiekt animacji lub wartość NULL.

Wartość zwracana

WARTOŚĆ TRUE, jeśli znaleziono obiekt; w przeciwnym razie FAŁSZ.

Uwagi

Wywoływane z procedur obsługi zdarzeń, gdy jest wymagane znalezienie obiektu animacji z przychodzącej zmiennej animacji.

CAnimationController::gkeyframeStoryboardStart

Ramka kluczowa reprezentująca początek scenorysu.

static CBaseKeyFrame gkeyframeStoryboardStart;

CAnimationController::GetKeyframeStoryboardStart

Zwraca ramkę kluczową, która identyfikuje początek scenorysu.

static CBaseKeyFrame* GetKeyframeStoryboardStart();

Wartość zwracana

Wskaźnik do podstawowej ramki kluczy, która identyfikuje początek scenorysu.

Uwagi

Uzyskaj tę ramkę kluczową, aby oprzeć wszystkie inne ramki kluczowe lub przejścia w momencie rozpoczęcia scenorysu.

CAnimationController::GetUIAnimationManager

Zapewnia dostęp do hermetyzowanego obiektu IUIAnimationManager.

IUIAnimationManager* GetUIAnimationManager();

Wartość zwracana

Wskaźnik do interfejsu IUIAnimationManager lub null, jeśli tworzenie menedżera animacji nie powiodło się.

Uwagi

Jeśli bieżący system operacyjny nie obsługuje interfejsu API animacji systemu Windows, ta metoda zwraca wartość NULL, a następnie wszystkie kolejne wywołania elementu CAnimationController::IsValid zwracają wartość FALSE. Aby wywołać jego metody interfejsu, które nie są opakowane przez kontroler animacji, może być konieczne uzyskanie dostępu do klasy IUIAnimationManager.

CAnimationController::GetUIAnimationTimer

Zapewnia dostęp do hermetyzowanego obiektu IUIAnimationTimer.

IUIAnimationTimer* GetUIAnimationTimer();

Wartość zwracana

Wskaźnik do interfejsu IUIAnimationTimer lub NULL, jeśli tworzenie czasomierza animacji nie powiodło się.

Uwagi

Jeśli bieżący system operacyjny nie obsługuje interfejsu API animacji systemu Windows, ta metoda zwraca wartość NULL, a następnie wszystkie kolejne wywołania elementu CAnimationController::IsValid zwracają wartość FALSE.

CAnimationController::GetUITransitionFactory

Wskaźnik do interfejsu IUIAnimationTransitionFactory lub null, jeśli tworzenie biblioteki przejścia nie powiodło się.

IUIAnimationTransitionFactory* GetUITransitionFactory();

Wartość zwracana

Wskaźnik do IUIAnimationTransitionFactory lub NULL, jeśli tworzenie fabryki przejścia nie powiodło się.

Uwagi

Jeśli bieżący system operacyjny nie obsługuje interfejsu API animacji systemu Windows, ta metoda zwraca wartość NULL, a następnie wszystkie kolejne wywołania elementu CAnimationController::IsValid zwracają wartość FALSE.

CAnimationController::GetUITransitionLibrary

Zapewnia dostęp do hermetyzowanego obiektu IUIAnimationTransitionLibrary.

IUIAnimationTransitionLibrary* GetUITransitionLibrary();

Wartość zwracana

Wskaźnik do interfejsu IUIAnimationTransitionLibrary lub null, jeśli tworzenie biblioteki przejścia nie powiodło się.

Uwagi

Jeśli bieżący system operacyjny nie obsługuje interfejsu API animacji systemu Windows, ta metoda zwraca wartość NULL, a następnie wszystkie kolejne wywołania elementu CAnimationController::IsValid zwracają wartość FALSE.

CAnimationController::IsAnimationInProgress

Informuje, czy co najmniej jedna grupa odtwarza animację.

virtual BOOL IsAnimationInProgress();

Wartość zwracana

WARTOŚĆ TRUE, jeśli jest w toku animacja dla tego kontrolera animacji; w przeciwnym razie FAŁSZ.

Uwagi

Sprawdza stan menedżera animacji i zwraca wartość TRUE, jeśli stan jest UI_ANIMATION_MANAGER_BUSY.

CAnimationController::IsValid

Informuje, czy kontroler animacji jest prawidłowy.

BOOL IsValid() const;

Wartość zwracana

WARTOŚĆ TRUE, jeśli kontroler animacji jest prawidłowy; w przeciwnym razie FAŁSZ.

Uwagi

Ta metoda zwraca wartość FALSE tylko wtedy, gdy interfejs API animacji systemu Windows nie jest obsługiwany w bieżącym systemie operacyjnym i tworzenie menedżera animacji nie powiodło się, ponieważ nie zostało zarejestrowane. Aby wywołać metodę GetUIAnimationManager, należy wywołać co najmniej raz po zainicjowaniu bibliotek COM, aby spowodować ustawienie tej flagi.

CAnimationController::m_bIsValid

Określa, czy kontroler animacji jest prawidłowy, czy nie. Ten element członkowski ma wartość FALSE, jeśli bieżący system operacyjny nie obsługuje interfejsu API animacji systemu Windows.

BOOL m_bIsValid;

CAnimationController::m_lstAnimationGroups

Lista grup animacji należących do tego kontrolera animacji.

CList<CAnimationGroup*, CAnimationGroup*> m_lstAnimationGroups;

CAnimationController::m_pAnimationManager

Przechowuje wskaźnik do obiektu COM menedżera animacji.

ATL::CComPtr<IUIAnimationManager> m_pAnimationManager;

CAnimationController::m_pAnimationTimer

Przechowuje wskaźnik do obiektu COM czasomierza animacji.

ATL::CComPtr<IUIAnimationTimer> m_pAnimationTimer;

CAnimationController::m_pRelatedWnd

Wskaźnik do powiązanego obiektu CWnd, który może być automatycznie ponownie rysowany po zmianie stanu menedżera animacji lub po aktualizacji zdarzenia. Może mieć wartość NULL.

CWnd* m_pRelatedWnd;

CAnimationController::m_pTransitionFactory

Przechowuje wskaźnik do obiektu COM usługi Transition Factory.

ATL::CComPtr<IUIAnimationTransitionFactory> m_pTransitionFactory;

CAnimationController::m_pTransitionLibrary

Przechowuje wskaźnik do obiektu COM biblioteki przejściowej.

ATL::CComPtr<IUIAnimationTransitionLibrary> m_pTransitionLibrary;

CAnimationController::OnAfterSchedule

Wywoływana przez platformę, gdy zaplanowano animację dla określonej grupy.

virtual void OnAfterSchedule(CAnimationGroup* pGroup);

Parametry

PGroup
Wskaźnik do grupy animacji, która została zaplanowana.

Uwagi

Domyślna implementacja usuwa ramki kluczowe z określonej grupy i przechodzi ze zmiennych animacji należących do określonej grupy. Można przesłonić w klasie pochodnej, aby wykonać dodatkowe akcje zgodnie z harmonogramem animacji.

CAnimationController::OnAnimationIntegerValueChanged

Wywoływana przez platformę, gdy wartość całkowita zmiennej animacji uległa zmianie.

virtual void OnAnimationIntegerValueChanged(
    CAnimationGroup* pGroup,
    CAnimationBaseObject* pObject,
    IUIAnimationVariable* variable,
    INT32 newValue,
    INT32 prevValue);

Parametry

PGroup
Wskaźnik do grupy animacji, która zawiera obiekt animacji, którego wartość uległa zmianie.

pObject
Wskaźnik do obiektu animacji, który zawiera zmienną animacji, której wartość uległa zmianie.

zmienna
Wskaźnik do zmiennej animacji.

newValue
Określa nową wartość.

prevValue
Określa poprzednią wartość.

Uwagi

Ta metoda jest wywoływana w przypadku włączenia zdarzeń zmiennych animacji za pomocą elementu EnableIntegerValueChangedEvent wywoływanego dla określonej zmiennej animacji lub obiektu animacji. Można go zastąpić w klasie pochodnej w celu wykonania akcji specyficznych dla aplikacji.

CAnimationController::OnAnimationManagerStatusChanged

Wywoływana przez strukturę w odpowiedzi na zdarzenie StatusChanged z menedżera animacji.

virtual void OnAnimationManagerStatusChanged(
    UI_ANIMATION_MANAGER_STATUS newStatus,
    UI_ANIMATION_MANAGER_STATUS previousStatus);

Parametry

newStatus
Nowy stan menedżera animacji.

previousStatus
Poprzedni stan menedżera animacji.

Uwagi

Ta metoda jest wywoływana w przypadku włączenia zdarzeń menedżera animacji za pomocą elementu EnableAnimationManagerEvent. Można go zastąpić w klasie pochodnej w celu wykonania akcji specyficznych dla aplikacji. Domyślna implementacja aktualizuje powiązane okno, jeśli zostało ustawione za pomocą polecenia SetRelatedWnd.

CAnimationController::OnAnimationTimerPostUpdate

Wywoływana przez strukturę po zakończeniu aktualizacji animacji.

virtual void OnAnimationTimerPostUpdate();

Uwagi

Ta metoda jest wywoływana w przypadku włączenia procedur obsługi zdarzeń czasomierza przy użyciu polecenia EnableAnimationTimerEventHandler. Można go zastąpić w klasie pochodnej w celu wykonania akcji specyficznych dla aplikacji.

CAnimationController::OnAnimationTimerPreUpdate

Wywoływana przez strukturę przed rozpoczęciem aktualizacji animacji.

virtual void OnAnimationTimerPreUpdate();

Uwagi

Ta metoda jest wywoływana w przypadku włączenia procedur obsługi zdarzeń czasomierza przy użyciu polecenia EnableAnimationTimerEventHandler. Można go zastąpić w klasie pochodnej w celu wykonania akcji specyficznych dla aplikacji.

CAnimationController::OnAnimationTimerRenderingTooSlow

Wywoływana przez platformę, gdy szybkość renderowania klatek na animację spadnie poniżej minimalnej pożądanej szybkości klatek.

virtual void OnAnimationTimerRenderingTooSlow(UINT32 fps);

Parametry

Fps
Bieżąca szybkość klatek na sekundę.

Uwagi

Ta metoda jest wywoływana w przypadku włączenia procedur obsługi zdarzeń czasomierza przy użyciu polecenia EnableAnimationTimerEventHandler. Można go zastąpić w klasie pochodnej w celu wykonania akcji specyficznych dla aplikacji. Minimalna pożądana szybkość klatek jest określana przez wywołanie metody IUIAnimationTimer::SetFrameRateThreshold.

CAnimationController::OnAnimationValueChanged

Wywoływana przez strukturę, gdy wartość zmiennej animacji uległa zmianie.

virtual void OnAnimationValueChanged(
    CAnimationGroup* pGroup,
    CAnimationBaseObject* pObject,
    IUIAnimationVariable* variable,
    DOUBLE newValue,
    DOUBLE prevValue);

Parametry

PGroup
Wskaźnik do grupy animacji, która zawiera obiekt animacji, którego wartość uległa zmianie.

pObject
Wskaźnik do obiektu animacji, który zawiera zmienną animacji, której wartość uległa zmianie.

zmienna
Wskaźnik do zmiennej animacji.

newValue
Określa nową wartość.

prevValue
Określa poprzednią wartość.

Uwagi

Ta metoda jest wywoływana w przypadku włączenia zdarzeń zmiennych animacji za pomocą metody EnableValueChangedEvent wywoływanej dla określonej zmiennej animacji lub obiektu animacji. Można go zastąpić w klasie pochodnej w celu wykonania akcji specyficznych dla aplikacji.

CAnimationController::OnBeforeAnimationStart

Wywoływana przez strukturę bezpośrednio przed zaplanowaną animacją.

virtual void OnBeforeAnimationStart(CAnimationGroup* pGroup);

Parametry

PGroup
Wskaźnik do grupy animacji, której animacja ma się rozpocząć.

Uwagi

To wywołanie jest kierowane do powiązanego obiektu CWnd i może zostać zastąpione w klasie pochodnej w celu wykonania wszelkich dodatkowych akcji przed rozpoczęciem animacji dla określonej grupy.

CAnimationController::OnHasPriorityCancel

Wywoływana przez platformę w celu rozwiązania konfliktów planowania.

virtual BOOL OnHasPriorityCancel(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parametry

PGroupScheduled
Grupa, która jest właścicielem aktualnie zaplanowanego scenorysu.

pGroupNew
Grupa, która jest właścicielem nowego scenorysu, który jest w konflikcie z zaplanowanym scenorysem należącym do pGroupScheduled.

priorityEffect
Potencjalny wpływ na wartość pGroupNew, jeśli parametr pGroupScheduled ma wyższy priorytet.

Wartość zwracana

Powinna zwrócić wartość TRUE, jeśli scenorys należący do elementu pGroupNew ma priorytet. Jeśli scenorys należący do obiektu pGroupScheduled ma priorytet, powinien zwrócić wartość FALSE.

Uwagi

Ta metoda jest wywoływana, jeśli włączysz zdarzenia porównania priorytetów przy użyciu CAnimationController::EnablePriorityComparisonHandler i określ UI_ANIMATION_PHT_CANCEL. Można go zastąpić w klasie pochodnej w celu wykonania akcji specyficznych dla aplikacji. Przeczytaj dokumentację interfejsu API animacji systemu Windows, aby uzyskać więcej informacji na temat zarządzania konfliktami.

CAnimationController::OnHasPriorityCompress

Wywoływana przez platformę w celu rozwiązania konfliktów planowania.

virtual BOOL OnHasPriorityCompress(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parametry

PGroupScheduled
Grupa, która jest właścicielem aktualnie zaplanowanego scenorysu.

pGroupNew
Grupa, która jest właścicielem nowego scenorysu, który jest w konflikcie z zaplanowanym scenorysem należącym do pGroupScheduled.

priorityEffect
Potencjalny wpływ na wartość pGroupNew, jeśli parametr pGroupScheduled ma wyższy priorytet.

Wartość zwracana

Powinna zwrócić wartość TRUE, jeśli scenorys należący do elementu pGroupNew ma priorytet. Jeśli scenorys należący do obiektu pGroupScheduled ma priorytet, powinien zwrócić wartość FALSE.

Uwagi

Ta metoda jest wywoływana, jeśli włączysz zdarzenia porównania priorytetów przy użyciu CAnimationController::EnablePriorityComparisonHandler i określ UI_ANIMATION_PHT_COMPRESS. Można go zastąpić w klasie pochodnej w celu wykonania akcji specyficznych dla aplikacji. Przeczytaj dokumentację interfejsu API animacji systemu Windows, aby uzyskać więcej informacji na temat zarządzania konfliktami.

CAnimationController::OnHasPriorityConclude

Wywoływana przez platformę w celu rozwiązania konfliktów planowania.

virtual BOOL OnHasPriorityConclude(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parametry

PGroupScheduled
Grupa, która jest właścicielem aktualnie zaplanowanego scenorysu.

pGroupNew
Grupa, która jest właścicielem nowego scenorysu, który jest w konflikcie z zaplanowanym scenorysem należącym do pGroupScheduled.

priorityEffect
Potencjalny wpływ na wartość pGroupNew, jeśli parametr pGroupScheduled ma wyższy priorytet.

Wartość zwracana

Powinna zwrócić wartość TRUE, jeśli scenorys należący do elementu pGroupNew ma priorytet. Jeśli scenorys należący do obiektu pGroupScheduled ma priorytet, powinien zwrócić wartość FALSE.

Uwagi

Ta metoda jest wywoływana, jeśli włączysz zdarzenia porównania priorytetów przy użyciu CAnimationController::EnablePriorityComparisonHandler i określ UI_ANIMATION_PHT_CONCLUDE. Można go zastąpić w klasie pochodnej w celu wykonania akcji specyficznych dla aplikacji. Przeczytaj dokumentację interfejsu API animacji systemu Windows, aby uzyskać więcej informacji na temat zarządzania konfliktami.

CAnimationController::OnHasPriorityTrim

Wywoływana przez platformę w celu rozwiązania konfliktów planowania.

virtual BOOL OnHasPriorityTrim(
    CAnimationGroup* pGroupScheduled,
    CAnimationGroup* pGroupNew,
    UI_ANIMATION_PRIORITY_EFFECT priorityEffect);

Parametry

PGroupScheduled
Grupa, która jest właścicielem aktualnie zaplanowanego scenorysu.

pGroupNew
Grupa, która jest właścicielem nowego scenorysu, który jest w konflikcie z zaplanowanym scenorysem należącym do pGroupScheduled.

priorityEffect
Potencjalny wpływ na wartość pGroupNew, jeśli parametr pGroupScheduled ma wyższy priorytet.

Wartość zwracana

Powinna zwrócić wartość TRUE, jeśli scenorys należący do elementu pGroupNew ma priorytet. Jeśli scenorys należący do obiektu pGroupScheduled ma priorytet, powinien zwrócić wartość FALSE.

Uwagi

Ta metoda jest wywoływana, jeśli włączysz zdarzenia porównania priorytetów przy użyciu CAnimationController::EnablePriorityComparisonHandler i określ UI_ANIMATION_PHT_TRIM. Można go zastąpić w klasie pochodnej w celu wykonania akcji specyficznych dla aplikacji. Przeczytaj dokumentację interfejsu API animacji systemu Windows, aby uzyskać więcej informacji na temat zarządzania konfliktami.

CAnimationController::OnStoryboardStatusChanged

Wywoływana przez strukturę, gdy stan scenorysu uległ zmianie.

virtual void OnStoryboardStatusChanged(
    CAnimationGroup* pGroup,
    UI_ANIMATION_STORYBOARD_STATUS newStatus,
    UI_ANIMATION_STORYBOARD_STATUS previousStatus);

Parametry

PGroup
Wskaźnik do grupy animacji, która jest właścicielem scenorysu, którego stan uległ zmianie.

newStatus
Określa nowy stan.

previousStatus
Określa poprzedni stan.

Uwagi

Ta metoda jest wywoływana, jeśli włączysz zdarzenia scenorysu przy użyciu CAnimationController::EnableStoryboardEventHandler. Można go zastąpić w klasie pochodnej w celu wykonania akcji specyficznych dla aplikacji.

CAnimationController::OnStoryboardUpdated

Wywoływana przez platformę po zaktualizowaniu scenorysu.

virtual void OnStoryboardUpdated(CAnimationGroup* pGroup);

Parametry

PGroup
Wskaźnik do grupy, która jest właścicielem scenorysu.

Uwagi

Ta metoda jest wywoływana, jeśli włączysz zdarzenia scenorysu przy użyciu CAnimationController::EnableStoryboardEventHandler. Można go zastąpić w klasie pochodnej w celu wykonania akcji specyficznych dla aplikacji.

CAnimationController::RemoveAllAnimationGroups

Usuwa wszystkie grupy animacji z kontrolera animacji.

void RemoveAllAnimationGroups();

Uwagi

Wszystkie grupy zostaną usunięte, ich wskaźnik, jeśli jest przechowywany na poziomie aplikacji, musi zostać unieważniony. Jeśli CAnimationGroup::m_bAutodestroyAnimationObjects dla usuniętej grupy ma wartość TRUE, wszystkie obiekty animacji należące do tej grupy zostaną usunięte; w przeciwnym razie odwołania do nadrzędnego kontrolera animacji zostaną ustawione na wartość NULL i można je dodać do innego kontrolera.

CAnimationController::RemoveAnimationGroup

Usuwa grupę animacji z określonym identyfikatorem z kontrolera animacji.

void RemoveAnimationGroup(UINT32 nGroupID);

Parametry

nGroupID
Określa identyfikator grupy animacji.

Uwagi

Ta metoda usuwa grupę animacji z wewnętrznej listy grup i usuwa ją, dlatego jeśli wskaźnik jest przechowywany w tej grupie animacji, musi zostać unieważniony. Jeśli wartość CAnimationGroup::m_bAutodestroyAnimationObjects ma wartość TRUE, wszystkie obiekty animacji należące do tej grupy zostaną usunięte; w przeciwnym razie odwołania do nadrzędnego kontrolera animacji zostaną ustawione na wartość NULL i można je dodać do innego kontrolera.

CAnimationController::RemoveAnimationObject

Usuń obiekt animacji z kontrolera animacji.

void RemoveAnimationObject(
    CAnimationBaseObject* pObject,
    BOOL bNoDelete = FALSE);

Parametry

pObject
Wskaźnik do obiektu animacji.

bNoDelete
Jeśli ten parametr ma wartość TRUE, obiekt nie zostanie usunięty po usunięciu.

Uwagi

Usuwa obiekt animacji z kontrolera animacji i grupy animacji. Wywołaj tę funkcję, jeśli określony obiekt nie powinien już być animowany lub jeśli musisz przenieść obiekt do innego kontrolera animacji. W ostatnim przypadku bNoDelete musi mieć wartość TRUE.

CAnimationController::RemoveTransitions

Usuwa przejścia z obiektów animacji należących do określonej grupy.

void RemoveTransitions(UINT32 nGroupID);

Parametry

nGroupID
Określa identyfikator grupy.

Uwagi

Grupa wykonuje pętle na obiektach animacji i wywołuje funkcję ClearTransitions(FALSE) dla każdego obiektu animacji. Ta metoda jest wywoływana przez strukturę po zaplanowaniu animacji.

CAnimationController::ScheduleGroup

Planuje animację.

BOOL ScheduleGroup(
    UINT32 nGroupID,
    UI_ANIMATION_SECONDS time = 0.0);

Parametry

nGroupID
Określa identyfikator grupy animacji do zaplanowana.

Godzina
Określa czas, aby zaplanować.

Wartość zwracana

Wartość TRUE, jeśli animacja została zaplanowana pomyślnie. FAŁSZ, jeśli scenorys nie został utworzony lub wystąpi inny błąd.

Uwagi

Należy wywołać metodę AnimowanieGroup z parametrem bScheduleNow ustawionym na WARTOŚĆ FALSE przed grupą ScheduleGroup. Można określić żądany czas animacji uzyskany z IUIAnimationTimer::GetTime. Jeśli parametr time ma wartość 0.0, animacja jest zaplanowana dla bieżącej godziny.

CAnimationController::SetRelatedWnd

Ustanawia relację między kontrolerem animacji a oknem.

void SetRelatedWnd(CWnd* pWnd);

Parametry

pWnd
Wskaźnik do obiektu okna do ustawienia.

Uwagi

Jeśli ustawiono powiązany obiekt CWnd, kontroler animacji może go automatycznie zaktualizować (wysłać WM_PAINT komunikat) po zmianie stanu menedżera animacji lub wystąpieniu zdarzenia po aktualizacji czasomierza.

CAnimationController::UpdateAnimationManager

Przekierowuje menedżera animacji w celu zaktualizowania wartości wszystkich zmiennych animacji.

virtual void UpdateAnimationManager();

Uwagi

Wywołanie tej metody powoduje przejście menedżera animacji do bieżącego czasu, zmianę stanu scenorysów w razie potrzeby i zaktualizowanie wszelkich zmiennych animacji do odpowiednich wartości interpolowanych. Ta metoda wewnętrznie wywołuje metodę IUIAnimationTimer::GetTime(timeNow) i IUIAnimationManager::Update(timeNow). Zastąp tę metodę w klasie pochodnej, aby dostosować to zachowanie.

Zobacz też

Klasy