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
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.