CAnimationController-Klasse
Implementiert den Animationscontroller, der eine zentrale Schnittstelle zum Erstellen und Verwalten von Animationen bereitstellt.
Syntax
class CAnimationController : public CObject;
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CAnimationController::CAnimationController | Erstellt einen Animationscontroller. |
CAnimationController::~CAnimationController | Der Destruktor. Wird aufgerufen, wenn das Animationscontrollerobjekt zerstört wird. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CAnimationController::AddAnimationObject | Fügt einer Gruppe, die zum Animationscontroller gehört, ein Animationsobjekt hinzu. |
CAnimationController::AddKeyframeToGroup | Fügt der Gruppe einen Keyframe hinzu. |
CAnimationController::AnimateGroup | Bereitet eine Gruppe auf die Ausführung von Animationen vor und plant sie optional. |
CAnimationController::CleanUpGroup | Überladen. Vom Framework aufgerufen, um die Gruppe zu bereinigen, wenn die Animation geplant wurde. |
CAnimationController::CreateKeyframe | Überladen. Erstellt einen Keyframe, der vom Übergang abhängig ist, und fügt ihn der angegebenen Gruppe hinzu. |
CAnimationController::EnableAnimationManagerEvent | Legt einen Handler fest, der aufgerufen werden soll, wenn sich der Status des Animations-Managers ändert, oder gibt ihn frei. |
CAnimationController::EnableAnimationTimerEventHandler | Legt einen Handler für Timing-Ereignisse und -Handler für Timing-Updates fest oder gibt sie frei. |
CAnimationController::EnablePriorityComparisonHandler | Legt den Prioritätsvergleichshandler fest, der aufgerufen werden soll, um zu bestimmen, ob ein geplantes Storyboard abgebrochen, abgeschlossen, gekürzt oder komprimiert werden kann. |
CAnimationController::EnableStoryboardEventHandler | Legt einen Handler für Storyboardstatus und Aktualisierungsereignisse fest oder gibt den Handler frei. |
CAnimationController::FindAnimationGroup | Überladen. Sucht eine Animationsgruppe anhand des Storyboards. |
CAnimationController::FindAnimationObject | Sucht ein Animationsobjekt, das eine angegebene Animationsvariable enthält. |
CAnimationController::GetKeyframeStoryboardStart | Gibt einen Keyframe zurück, der den Anfang des Storyboards identifiziert. |
CAnimationController::GetUIAnimationManager | Bietet Zugriff auf das gekapselte IUIAnimationManager -Objekt. |
CAnimationController::GetUIAnimationTimer | Bietet Zugriff auf das gekapselte IUIAnimationTimer -Objekt. |
CAnimationController::GetUITransitionFactory | Ein Zeiger auf die IUIAnimationTransitionFactory-Schnittstelle oder NULL, wenn die Erstellung der Übergangsbibliothek fehlgeschlagen ist. |
CAnimationController::GetUITransitionLibrary | Bietet Zugriff auf kapselte IUIAnimationTransitionLibrary -Objekt. |
CAnimationController::IsAnimationInProgress | Gibt an, ob mindestens eine Gruppe Animation wiedergegeben wird. |
CAnimationController::IsValid | Gibt an, ob der Animationscontroller gültig ist. |
CAnimationController::OnAnimationIntegerValueChanged | Wird vom Framework aufgerufen, wenn sich der ganzzahlige Wert der Animationsvariable geändert hat. |
CAnimationController::OnAnimationManagerStatusChanged | Vom Framework als Reaktion auf das StatusChanged-Ereignis vom Animations-Manager aufgerufen. |
CAnimationController::OnAnimationTimerPostUpdate | Wird vom Framework aufgerufen, nachdem ein Animationsupdate abgeschlossen wurde. |
CAnimationController::OnAnimationTimerPreUpdate | Vom Framework aufgerufen, bevor ein Animationsupdate beginnt. |
CAnimationController::OnAnimationTimerRenderingTooSlow | Wird vom Framework aufgerufen, wenn die Renderingframerate für eine Animation unter eine minimale wünschenswerte Framerate fällt. |
CAnimationController::OnAnimationValueChanged | Wird vom Framework aufgerufen, wenn sich der Wert der Animationsvariable geändert hat. |
CAnimationController::OnBeforeAnimationStart | Wird vom Framework direkt vor der Planung der Animation aufgerufen. |
CAnimationController::OnHasPriorityCancel | Wird vom Framework aufgerufen, um Konflikte bei der Planung zu beheben. |
CAnimationController::OnHasPriorityCompress | Wird vom Framework aufgerufen, um Konflikte bei der Planung zu beheben. |
CAnimationController::OnHasPriorityConclude | Wird vom Framework aufgerufen, um Konflikte bei der Planung zu beheben. |
CAnimationController::OnHasPriorityTrim | Wird vom Framework aufgerufen, um Konflikte bei der Planung zu beheben. |
CAnimationController::OnStoryboardStatusChanged | Wird vom Framework aufgerufen, wenn sich der Storyboardstatus geändert hat. |
CAnimationController::OnStoryboardUpdated | Wird vom Framework aufgerufen, wenn storyboard aktualisiert wurde. |
CAnimationController::RemoveAllAnimationGroups | Entfernt alle Animationsgruppen aus dem Animationscontroller. |
CAnimationController::RemoveAnimationGroup | Entfernt eine Animationsgruppe mit der angegebenen ID vom Animationscontroller. |
CAnimationController::RemoveAnimationObject | Entfernen Sie ein Animationsobjekt aus dem Animationscontroller. |
CAnimationController::RemoveTransitions | Entfernt Übergänge aus Animationsobjekten, die zur angegebenen Gruppe gehören. |
CAnimationController::ScheduleGroup | Plant eine Animation. |
CAnimationController::SetRelatedWnd | Stellt eine Beziehung zwischen animationscontroller und einem Fenster her. |
CAnimationController::UpdateAnimationManager | Leitet den Animations-Manager an, die Werte aller Animationsvariablen zu aktualisieren. |
Geschützte Methoden
Name | Beschreibung |
---|---|
CAnimationController::CleanUpGroup | Überladen. Ein Helfer, der die Gruppe bereinigt. |
CAnimationController::OnAfterSchedule | Wird vom Framework aufgerufen, wenn gerade eine Animation für die angegebene Gruppe geplant wurde. |
Geschützte Datenmember
Name | Beschreibung |
---|---|
CAnimationController::gkeyframeStoryboardStart | Ein Keyframe, der den Anfang des Storyboards darstellt. |
CAnimationController::m_bIsValid | Gibt an, ob ein Animationscontroller gültig ist oder nicht. Dieses Element ist auf FALSE festgelegt, wenn das aktuelle Betriebssystem die Windows-Animations-API nicht unterstützt. |
CAnimationController::m_lstAnimationGroups | Eine Liste der Animationsgruppen, die zu diesem Animationscontroller gehören. |
CAnimationController::m_pAnimationManager | Speichert einen Zeiger auf das COM-Objekt des Animations-Managers. |
CAnimationController::m_pAnimationTimer | Speichert einen Zeiger auf das COM-Objekt des Animationstimers. |
CAnimationController::m_pRelatedWnd | Ein Zeiger auf ein verwandtes CWnd-Objekt, das automatisch neu gezeichnet werden kann, wenn sich der Status des Animations-Managers geändert hat oder das Ereignis nach der Aktualisierung aufgetreten ist. Kann den Wert NULL haben. |
CAnimationController::m_pTransitionFactory | Speichert einen Zeiger auf das COM-Objekt "Transition Factory". |
CAnimationController::m_pTransitionLibrary | Speichert einen Zeiger auf das COM-Objekt der Übergangsbibliothek. |
Hinweise
Die CAnimationController-Klasse ist die Schlüsselklasse, die Animationen verwaltet. Sie können eine oder mehrere Instanzen des Animationscontrollers in einer Anwendung erstellen und optional eine Instanz des Animationscontrollers mit einem CWnd-Objekt mithilfe von CAnimationController::SetRelatedWnd verbinden. Diese Verbindung ist erforderlich, um WM_PAINT Nachrichten automatisch an das zugehörige Fenster zu senden, wenn der Animations-Manager-Status geändert wurde oder der Animationstimer aktualisiert wurde. Wenn Sie diese Beziehung nicht aktivieren, müssen Sie ein Fenster neu zeichnen, in dem eine Animation manuell angezeigt wird. Zu diesem Zweck können Sie eine Klasse von CAnimationController ableiten und OnAnimationManagerStatusChanged und/oder OnAnimationTimerPostUpdate außer Kraft setzen und bei Bedarf ein oder mehrere Fenster ungültig halten.
Vererbungshierarchie
CAnimationController
Anforderungen
Header: afxanimationcontroller.h
CAnimationController::~CAnimationController
Der Destruktor. Wird aufgerufen, wenn das Animationscontrollerobjekt zerstört wird.
virtual ~CAnimationController(void);
CAnimationController::AddAnimationObject
Fügt einer Gruppe, die zum Animationscontroller gehört, ein Animationsobjekt hinzu.
CAnimationGroup* AddAnimationObject(CAnimationBaseObject* pObject);
Parameter
pObject
Ein Zeiger auf ein Animationsobjekt.
Rückgabewert
Ein Zeiger auf eine vorhandene oder neue Animationsgruppe, in der pObject hinzugefügt wurde, wenn die Funktion erfolgreich ausgeführt wird; NULL, wenn pObject bereits einer Gruppe hinzugefügt wurde, die zu einem anderen Animationscontroller gehört.
Hinweise
Rufen Sie diese Methode auf, um dem Animationscontroller ein Animationsobjekt hinzuzufügen. Ein Objekt wird einer Gruppe entsprechend der GroupID des Objekts hinzugefügt (siehe CAnimationBaseObject::SetID). Der Animationscontroller erstellt eine neue Gruppe, wenn es das erste Objekt ist, das mit der angegebenen GroupID hinzugefügt wird. Ein Animationsobjekt kann nur einem Animationscontroller hinzugefügt werden. Wenn Sie einem anderen Controller ein Objekt hinzufügen müssen, rufen Sie "RemoveAnimationObject" zuerst auf. Wenn Sie SetID mit neuer GroupID für ein Objekt aufrufen, das bereits einer Gruppe hinzugefügt wurde, wird das Objekt aus der alten Gruppe entfernt und einer anderen Gruppe mit der angegebenen ID hinzugefügt.
CAnimationController::AddKeyframeToGroup
Fügt der Gruppe einen Keyframe hinzu.
BOOL AddKeyframeToGroup(
UINT32 nGroupID,
CBaseKeyFrame* pKeyframe);
Parameter
nGroupID
Gibt die Gruppen-ID an.
pKeyframe
Ein Zeiger auf einen Keyframe.
Rückgabewert
TRUE, wenn die Funktion erfolgreich ist; andernfalls FALSE.
Hinweise
In der Regel müssen Sie diese Methode nicht aufrufen, verwenden Sie stattdessen CAnimationController::CreateKeyframe, wodurch das erstellte Keyframe automatisch zu einer Gruppe erstellt und hinzugefügt wird.
CAnimationController::AnimateGroup
Bereitet eine Gruppe auf die Ausführung von Animationen vor und plant sie optional.
BOOL AnimateGroup(
UINT32 nGroupID,
BOOL bScheduleNow = TRUE);
Parameter
nGroupID
Gibt "GroupID" an.
bScheduleNow
Gibt an, ob Animation sofort ausgeführt werden soll.
Rückgabewert
TRUE, wenn die Animation erfolgreich geplant und ausgeführt wurde.
Hinweise
Diese Methode erledigt die eigentliche Arbeit beim Erstellen von Storyboards, Hinzufügen von Animationsvariablen, Anwenden von Übergängen und Festlegen von Keyframes. Es ist möglich, die Planung zu verzögern, wenn Sie bScheduleNow auf FALSE festlegen. In diesem Fall enthält die angegebene Gruppe ein Storyboard, das für die Animation eingerichtet wurde. An diesem Punkt können Sie Ereignisse für die Storyboard- und Animationsvariablen einrichten. Wenn Sie tatsächlich den Animationsaufruf "CAnimationController::ScheduleGroup" ausführen müssen.
CAnimationController::CAnimationController
Erstellt einen Animationscontroller.
CAnimationController(void);
CAnimationController::CleanUpGroup
Vom Framework aufgerufen, um die Gruppe zu bereinigen, wenn die Animation geplant wurde.
void CleanUpGroup(UINT32 nGroupID);
void CleanUpGroup(CAnimationGroup* pGroup);
Parameter
nGroupID
Gibt "GroupID" an.
pGroup
Ein Zeiger auf eine Animationsgruppe zum Bereinigen.
Hinweise
Mit dieser Methode werden alle Übergänge und Keyframes aus der angegebenen Gruppe entfernt, da sie nach der Planung einer Animation nicht relevant sind.
CAnimationController::CreateKeyframe
Erstellt einen Keyframe, der vom Übergang abhängig ist, und fügt ihn der angegebenen Gruppe hinzu.
CKeyFrame* CreateKeyframe(
UINT32 nGroupID,
CBaseTransition* pTransition);
CKeyFrame* CreateKeyframe(
UINT32 nGroupID,
CBaseKeyFrame* pKeyframe,
UI_ANIMATION_SECONDS offset = 0.0);
Parameter
nGroupID
Gibt die ID der Gruppe an, für die der Keyframe erstellt wird.
pTransition
Ein Zeiger auf den Übergang. Der Keyframe wird nach diesem Übergang in das Storyboard eingefügt.
pKeyframe
Ein Zeiger auf das Basiskeyframe für diesen Keyframe.
offset
Offset in Sekunden gegenüber dem vom „pKeyframe“ angegebenen Basiskeyframe.
Rückgabewert
Ein Zeiger auf das neu erstellte Keyframe, wenn die Funktion erfolgreich ausgeführt wurde.
Hinweise
Sie können den zurückgegebenen Zeiger speichern und weitere Keyframes auf dem neu erstellten Keyframe basieren lassen (siehe dazu die zweite Überladung). Es ist möglich, Übergänge an Keyframes zu beginnen – siehe dazu „CBaseTransition::SetKeyframes“. In dieser Weise erstellte Keyframes müssen nicht gelöscht werden, da sie von Animationsgruppen automatisch gelöscht werden. Gehen Sie beim Erstellen von Keyframes auf der Basis anderer Keyframes und Übergänge umsichtig vor, und vermeiden Sie Zirkelbezüge.
CAnimationController::EnableAnimationManagerEvent
Legt einen Handler fest, der aufgerufen werden soll, wenn sich der Status des Animations-Managers ändert, oder gibt ihn frei.
virtual BOOL EnableAnimationManagerEvent(BOOL bEnable = TRUE);
Parameter
bEnable
Gibt an, ob ein Handler festgelegt oder freigegeben werden soll.
Rückgabewert
TRUE, wenn der Handler erfolgreich festgelegt oder freigegeben wurde.
Hinweise
Wenn ein Handler festgelegt (aktiviert) wird, ruft Windows Animation OnAnimationManagerStatusChanged auf, wenn sich der Status des Animations-Managers ändert.
CAnimationController::EnableAnimationTimerEventHandler
Legt einen Handler für Timing-Ereignisse und -Handler für Timing-Updates fest oder gibt sie frei.
virtual BOOL EnableAnimationTimerEventHandler(
BOOL bEnable = TRUE,
UI_ANIMATION_IDLE_BEHAVIOR idleBehavior = UI_ANIMATION_IDLE_BEHAVIOR_DISABLE);
Parameter
bEnable
Gibt an, ob die Handler festgelegt oder freigegeben werden sollen.
idleBehavior
Gibt das Leerlaufverhalten für den Zeitgeberaktualisierungshandler an.
Rückgabewert
TRUE, wenn Handler erfolgreich festgelegt oder freigegeben wurden; FALSE, wenn diese Methode ein zweites Mal aufgerufen wird, ohne die Handler zuerst freizugeben, oder wenn ein anderer Fehler auftritt.
Hinweise
Wenn die Handler festgelegt (aktiviert) werden, ruft die Windows-Animations-API OnAnimationTimerPreUpdate, OnAnimationTimerPostUpdate, OnRenderingTooSlow-Methoden auf. Sie müssen Animationstimer aktivieren, um Windows-Animations-API-Update-Storyboards zuzulassen. Andernfalls müssen Sie CAnimationController::UpdateAnimationManager aufrufen, um den Animations-Manager anzufordern, die Werte aller Animationsvariablen zu aktualisieren.
CAnimationController::EnablePriorityComparisonHandler
Legt den Prioritätsvergleichshandler fest, der aufgerufen werden soll, um zu bestimmen, ob ein geplantes Storyboard abgebrochen, abgeschlossen, gekürzt oder komprimiert werden kann.
virtual BOOL EnablePriorityComparisonHandler(DWORD dwHandlerType);
Parameter
dwHandlerType
Eine Kombination aus UI_ANIMATION_PHT_ Flags (siehe Hinweise), die angibt, welche Handler festgelegt oder freigegeben werden sollen.
Rückgabewert
TRUE, wenn der Handler erfolgreich festgelegt oder freigegeben wurde.
Hinweise
Wenn ein Handler festgelegt (aktiviert) wird, ruft Windows Animation die folgenden virtuellen Methoden abhängig von dwHandlerType auf: OnHasPriorityCancel, OnHasPriorityConclude, OnHasPriorityTrim, OnHasPriorityCompress. dwHandler kann eine Kombination der folgenden Flags sein: UI_ANIMATION_PHT_NONE - alle Handler freigeben UI_ANIMATION_PHT_CANCEL - Festlegen des Cancel-Vergleichshandlers UI_ANIMATION_PHT_CONCLUDE - Festlegen des Abschlussvergleichshandlers UI_ANIMATION_PHT_COMPRESS - Festlegen des Komprimierungsvergleichshandlers UI_ANIMATION_PHT_TRIM - Festlegen des Trim-Vergleichshandlers UI_ANIMATION_PHT_CANCEL_REMOVE - Remove Cancel comparison handler UI_ANIMATION_PHT_CONCLUDE_REMOVE - remove Conclude comparison handler UI_ANIMATION_PHT_COMPRESS_REMOVE - remove Compress comparison handler UI_ANIMATION_PHT_TRIM_REMOVE - remove Trim comparison handler
CAnimationController::EnableStoryboardEventHandler
Legt einen Handler für Storyboardstatus und Aktualisierungsereignisse fest oder gibt den Handler frei.
virtual BOOL EnableStoryboardEventHandler(
UINT32 nGroupID,
BOOL bEnable = TRUE);
Parameter
nGroupID
Gibt die Gruppen-ID an.
bEnable
Gibt an, ob ein Handler festgelegt oder freigegeben werden soll.
Rückgabewert
TRUE, wenn der Handler erfolgreich festgelegt oder freigegeben wurde; FALSE, wenn die angegebene Animationsgruppe jetzt gefunden oder animation für die angegebene Gruppe nicht initiiert wurde und das interne Storyboard NULL ist.
Hinweise
Wenn ein Handler festgelegt (aktiviert) wird, ruft die Windows-Animations-API OnStoryboardStatusChanges und onStoryboardUpdated virtuelle Methoden auf. Ein Handler muss festgelegt werden, nachdem CAnimationController::Animate für die angegebene Animationsgruppe aufgerufen wurde, da er ein gekapseltes IUIAnimationStoryboard-Objekt erstellt.
CAnimationController::FindAnimationGroup
Sucht eine Animationsgruppe anhand der Gruppen-ID.
CAnimationGroup* FindAnimationGroup(UINT32 nGroupID);
CAnimationGroup* FindAnimationGroup(IUIAnimationStoryboard* pStoryboard);
Parameter
nGroupID
Gibt eine GroupID an.
pStoryboard
Ein Zeiger auf ein Storyboard.
Rückgabewert
Ein Zeiger auf animationsgruppe oder NULL, wenn die Gruppe mit der angegebenen ID nicht gefunden wird.
Hinweise
Verwenden Sie diese Methode, um eine Animationsgruppe zur Laufzeit zu finden. Eine Gruppe wird erstellt und der internen Liste der Animationsgruppen hinzugefügt, wenn dem Animationscontroller ein erstes Animationsobjekt mit einer bestimmten GroupID hinzugefügt wird.
CAnimationController::FindAnimationObject
Sucht ein Animationsobjekt, das eine angegebene Animationsvariable enthält.
BOOL FindAnimationObject(
IUIAnimationVariable* pVariable,
CAnimationBaseObject** ppObject,
CAnimationGroup** ppGroup);
Parameter
pVariable
Ein Zeiger auf die Animationsvariable.
ppObject
Ausgabe Enthält einen Zeiger auf animationsobjekt oder NULL.
ppGroup
Ausgabe Enthält einen Zeiger auf eine Animationsgruppe, die das Animationsobjekt oder NULL enthält.
Rückgabewert
TRUE, wenn objekt gefunden wurde; andernfalls FALSE.
Hinweise
Wird von Ereignishandlern aufgerufen, wenn es erforderlich ist, ein Animationsobjekt aus eingehender Animationsvariable zu finden.
CAnimationController::gkeyframeStoryboardStart
Ein Keyframe, der den Anfang des Storyboards darstellt.
static CBaseKeyFrame gkeyframeStoryboardStart;
CAnimationController::GetKeyframeStoryboardStart
Gibt einen Keyframe zurück, der den Anfang des Storyboards identifiziert.
static CBaseKeyFrame* GetKeyframeStoryboardStart();
Rückgabewert
Ein Zeiger zum Basisschlüsselframe, der den Anfang des Storyboards identifiziert.
Hinweise
Rufen Sie diesen Keyframe ab, um alle anderen Keyframes oder Übergänge im Moment zu basieren, wenn ein Storyboard beginnt.
CAnimationController::GetUIAnimationManager
Bietet Zugriff auf das gekapselte IUIAnimationManager -Objekt.
IUIAnimationManager* GetUIAnimationManager();
Rückgabewert
Ein Zeiger auf die IUIAnimationManager-Schnittstelle oder NULL, wenn beim Erstellen des Animations-Managers ein Fehler aufgetreten ist.
Hinweise
Wenn das aktuelle Betriebssystem die Windows-Animations-API nicht unterstützt, gibt diese Methode NULL und danach alle nachfolgenden Aufrufe von CAnimationController::IsValid FALSE zurück. Möglicherweise müssen Sie auf IUIAnimationManager zugreifen, um die Schnittstellenmethoden aufzurufen, die nicht vom Animationscontroller umschlossen werden.
CAnimationController::GetUIAnimationTimer
Bietet Zugriff auf das gekapselte IUIAnimationTimer -Objekt.
IUIAnimationTimer* GetUIAnimationTimer();
Rückgabewert
Ein Zeiger auf die IUIAnimationTimer-Schnittstelle oder NULL, wenn beim Erstellen des Animationszeitgebers ein Fehler aufgetreten ist.
Hinweise
Wenn das aktuelle Betriebssystem die Windows-Animations-API nicht unterstützt, gibt diese Methode NULL und danach alle nachfolgenden Aufrufe von CAnimationController::IsValid FALSE zurück.
CAnimationController::GetUITransitionFactory
Ein Zeiger auf die IUIAnimationTransitionFactory-Schnittstelle oder NULL, wenn die Erstellung der Übergangsbibliothek fehlgeschlagen ist.
IUIAnimationTransitionFactory* GetUITransitionFactory();
Rückgabewert
Ein Zeiger auf IUIAnimationTransitionFactory oder NULL, wenn die Erstellung der Übergangsfactory fehlgeschlagen ist.
Hinweise
Wenn das aktuelle Betriebssystem die Windows-Animations-API nicht unterstützt, gibt diese Methode NULL und danach alle nachfolgenden Aufrufe von CAnimationController::IsValid FALSE zurück.
CAnimationController::GetUITransitionLibrary
Bietet Zugriff auf kapselte IUIAnimationTransitionLibrary -Objekt.
IUIAnimationTransitionLibrary* GetUITransitionLibrary();
Rückgabewert
Ein Zeiger auf die IUIAnimationTransitionLibrary-Schnittstelle oder NULL, wenn die Erstellung der Übergangsbibliothek fehlgeschlagen ist.
Hinweise
Wenn das aktuelle Betriebssystem die Windows-Animations-API nicht unterstützt, gibt diese Methode NULL und danach alle nachfolgenden Aufrufe von CAnimationController::IsValid FALSE zurück.
CAnimationController::IsAnimationInProgress
Gibt an, ob mindestens eine Gruppe Animation wiedergegeben wird.
virtual BOOL IsAnimationInProgress();
Rückgabewert
TRUE, wenn für diesen Animationscontroller eine Animation ausgeführt wird; andernfalls FALSE.
Hinweise
Überprüft den Status des Animations-Managers und gibt TRUE zurück, wenn der Status UI_ANIMATION_MANAGER_BUSY ist.
CAnimationController::IsValid
Gibt an, ob der Animationscontroller gültig ist.
BOOL IsValid() const;
Rückgabewert
TRUE, wenn der Animationscontroller gültig ist; andernfalls FALSE.
Hinweise
Diese Methode gibt FALSE nur zurück, wenn die Windows-Animations-API für das aktuelle Betriebssystem nicht unterstützt wird und die Erstellung des Animations-Managers fehlgeschlagen ist, da sie nicht registriert ist. Sie müssen GetUIAnimationManager mindestens einmal nach der Initialisierung von COM-Bibliotheken aufrufen, um die Einstellung dieses Flags zu verursachen.
CAnimationController::m_bIsValid
Gibt an, ob ein Animationscontroller gültig ist oder nicht. Dieses Element ist auf FALSE festgelegt, wenn das aktuelle Betriebssystem die Windows-Animations-API nicht unterstützt.
BOOL m_bIsValid;
CAnimationController::m_lstAnimationGroups
Eine Liste der Animationsgruppen, die zu diesem Animationscontroller gehören.
CList<CAnimationGroup*, CAnimationGroup*> m_lstAnimationGroups;
CAnimationController::m_pAnimationManager
Speichert einen Zeiger auf das COM-Objekt des Animations-Managers.
ATL::CComPtr<IUIAnimationManager> m_pAnimationManager;
CAnimationController::m_pAnimationTimer
Speichert einen Zeiger auf das COM-Objekt des Animationstimers.
ATL::CComPtr<IUIAnimationTimer> m_pAnimationTimer;
CAnimationController::m_pRelatedWnd
Ein Zeiger auf ein verwandtes CWnd-Objekt, das automatisch neu gezeichnet werden kann, wenn sich der Status des Animations-Managers geändert hat oder das Ereignis nach der Aktualisierung aufgetreten ist. Kann den Wert NULL haben.
CWnd* m_pRelatedWnd;
CAnimationController::m_pTransitionFactory
Speichert einen Zeiger auf das COM-Objekt "Transition Factory".
ATL::CComPtr<IUIAnimationTransitionFactory> m_pTransitionFactory;
CAnimationController::m_pTransitionLibrary
Speichert einen Zeiger auf das COM-Objekt der Übergangsbibliothek.
ATL::CComPtr<IUIAnimationTransitionLibrary> m_pTransitionLibrary;
CAnimationController::OnAfterSchedule
Wird vom Framework aufgerufen, wenn gerade eine Animation für die angegebene Gruppe geplant wurde.
virtual void OnAfterSchedule(CAnimationGroup* pGroup);
Parameter
pGroup
Ein Zeiger auf eine Animationsgruppe, die geplant wurde.
Hinweise
Die Standardimplementierung entfernt Keyframes aus der angegebenen Gruppe und Übergänge aus Animationsvariablen, die zur angegebenen Gruppe gehören. Kann in einer abgeleiteten Klasse außer Kraft gesetzt werden, um zusätzliche Aktionen nach dem Animationszeitplan auszuführen.
CAnimationController::OnAnimationIntegerValueChanged
Wird vom Framework aufgerufen, wenn sich der ganzzahlige Wert der Animationsvariable geändert hat.
virtual void OnAnimationIntegerValueChanged(
CAnimationGroup* pGroup,
CAnimationBaseObject* pObject,
IUIAnimationVariable* variable,
INT32 newValue,
INT32 prevValue);
Parameter
pGroup
Ein Zeiger auf eine Animationsgruppe, die ein Animationsobjekt enthält, dessen Wert sich geändert hat.
pObject
Ein Zeiger auf ein Animationsobjekt, das eine Animationsvariable enthält, deren Wert sich geändert hat.
variable
Ein Zeiger auf eine Animationsvariable.
newValue
Gibt einen neuen Wert an.
prevValue
Gibt den vorherigen Wert an.
Hinweise
Diese Methode wird aufgerufen, wenn Sie Animationsvariablenereignisse mit EnableIntegerValueChangedEvent aktivieren, die für eine bestimmte Animationsvariable oder ein Animationsobjekt aufgerufen wird. Sie kann in einer abgeleiteten Klasse überschrieben werden, um anwendungsspezifische Aktionen zu verwenden.
CAnimationController::OnAnimationManagerStatusChanged
Vom Framework als Reaktion auf das StatusChanged-Ereignis vom Animations-Manager aufgerufen.
virtual void OnAnimationManagerStatusChanged(
UI_ANIMATION_MANAGER_STATUS newStatus,
UI_ANIMATION_MANAGER_STATUS previousStatus);
Parameter
newStatus
Neuer Animations-Manager-Status.
previousStatus
Vorheriger Animations-Manager-Status.
Hinweise
Diese Methode wird aufgerufen, wenn Sie Animations-Manager-Ereignisse mit EnableAnimationManagerEvent aktivieren. Sie kann in einer abgeleiteten Klasse überschrieben werden, um anwendungsspezifische Aktionen zu verwenden. Die Standardimplementierung aktualisiert ein zugehöriges Fenster, wenn es mit SetRelatedWnd festgelegt wurde.
CAnimationController::OnAnimationTimerPostUpdate
Wird vom Framework aufgerufen, nachdem ein Animationsupdate abgeschlossen wurde.
virtual void OnAnimationTimerPostUpdate();
Hinweise
Diese Methode wird aufgerufen, wenn Sie Timerereignishandler mithilfe von EnableAnimationTimerEventHandler aktivieren. Sie kann in einer abgeleiteten Klasse überschrieben werden, um anwendungsspezifische Aktionen zu verwenden.
CAnimationController::OnAnimationTimerPreUpdate
Vom Framework aufgerufen, bevor ein Animationsupdate beginnt.
virtual void OnAnimationTimerPreUpdate();
Hinweise
Diese Methode wird aufgerufen, wenn Sie Timerereignishandler mithilfe von EnableAnimationTimerEventHandler aktivieren. Sie kann in einer abgeleiteten Klasse überschrieben werden, um anwendungsspezifische Aktionen zu verwenden.
CAnimationController::OnAnimationTimerRenderingTooSlow
Wird vom Framework aufgerufen, wenn die Renderingframerate für eine Animation unter eine minimale wünschenswerte Framerate fällt.
virtual void OnAnimationTimerRenderingTooSlow(UINT32 fps);
Parameter
Ego-Shooter
Die aktuelle Bildfrequenz in Frames pro Sekunde.
Hinweise
Diese Methode wird aufgerufen, wenn Sie Timerereignishandler mithilfe von EnableAnimationTimerEventHandler aktivieren. Sie kann in einer abgeleiteten Klasse überschrieben werden, um anwendungsspezifische Aktionen zu verwenden. Die minimale wünschenswerte Framerate wird durch Aufrufen von IUIAnimationTimer::SetFrameRateThreshold angegeben.
CAnimationController::OnAnimationValueChanged
Wird vom Framework aufgerufen, wenn sich der Wert der Animationsvariable geändert hat.
virtual void OnAnimationValueChanged(
CAnimationGroup* pGroup,
CAnimationBaseObject* pObject,
IUIAnimationVariable* variable,
DOUBLE newValue,
DOUBLE prevValue);
Parameter
pGroup
Ein Zeiger auf eine Animationsgruppe, die ein Animationsobjekt enthält, dessen Wert sich geändert hat.
pObject
Ein Zeiger auf ein Animationsobjekt, das eine Animationsvariable enthält, deren Wert sich geändert hat.
variable
Ein Zeiger auf eine Animationsvariable.
newValue
Gibt einen neuen Wert an.
prevValue
Gibt den vorherigen Wert an.
Hinweise
Diese Methode wird aufgerufen, wenn Sie Animationsvariablenereignisse mit EnableValueChangedEvent aktivieren, die für eine bestimmte Animationsvariable oder ein Animationsobjekt aufgerufen wird. Sie kann in einer abgeleiteten Klasse überschrieben werden, um anwendungsspezifische Aktionen zu verwenden.
CAnimationController::OnBeforeAnimationStart
Wird vom Framework direkt vor der Planung der Animation aufgerufen.
virtual void OnBeforeAnimationStart(CAnimationGroup* pGroup);
Parameter
pGroup
Ein Zeiger auf eine Animationsgruppe, deren Animation beginnen soll.
Hinweise
Dieser Aufruf wird an verwandte CWnd weitergeleitet und kann in einer abgeleiteten Klasse außer Kraft gesetzt werden, um zusätzliche Aktionen auszuführen, bevor die Animation für die angegebene Gruppe beginnt.
CAnimationController::OnHasPriorityCancel
Wird vom Framework aufgerufen, um Konflikte bei der Planung zu beheben.
virtual BOOL OnHasPriorityCancel(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
Parameter
pGroupScheduled
Die Gruppe, die das aktuell geplante Storyboard besitzt.
pGroupNew
Die Gruppe, die das neue Storyboard besitzt, für das ein Planungskonflikt mit dem geplanten Storyboard im Besitz von pGroupScheduled besteht.
priorityEffect
Die möglichen Auswirkungen auf pGroupNew, wenn pGroupScheduled eine höhere Priorität hat.
Rückgabewert
Muss „true“ zurückgeben, wenn das Storyboard im Besitz von pGroupNew Priorität hat. Muss „false“ zurückgeben, wenn das Storyboard im Besitz von pGroupScheduled Priorität hat.
Hinweise
Diese Methode wird aufgerufen, wenn Sie Prioritätsvergleichsereignisse mit CAnimationController::EnablePriorityComparisonHandler aktivieren und UI_ANIMATION_PHT_CANCEL angeben. Sie kann in einer abgeleiteten Klasse überschrieben werden, um anwendungsspezifische Aktionen zu verwenden. Weitere Informationen zur Konfliktverwaltung finden Sie in der Dokumentation zur Windows-Animations-API.
CAnimationController::OnHasPriorityCompress
Wird vom Framework aufgerufen, um Konflikte bei der Planung zu beheben.
virtual BOOL OnHasPriorityCompress(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
Parameter
pGroupScheduled
Die Gruppe, die das aktuell geplante Storyboard besitzt.
pGroupNew
Die Gruppe, die das neue Storyboard besitzt, für das ein Planungskonflikt mit dem geplanten Storyboard im Besitz von pGroupScheduled besteht.
priorityEffect
Die möglichen Auswirkungen auf pGroupNew, wenn pGroupScheduled eine höhere Priorität hat.
Rückgabewert
Muss „true“ zurückgeben, wenn das Storyboard im Besitz von pGroupNew Priorität hat. Muss „false“ zurückgeben, wenn das Storyboard im Besitz von pGroupScheduled Priorität hat.
Hinweise
Diese Methode wird aufgerufen, wenn Sie Prioritätsvergleichsereignisse mit CAnimationController::EnablePriorityComparisonHandler aktivieren und UI_ANIMATION_PHT_TRIM angeben. Sie kann in einer abgeleiteten Klasse überschrieben werden, um anwendungsspezifische Aktionen zu verwenden. Weitere Informationen zur Konfliktverwaltung finden Sie in der Dokumentation zur Windows-Animations-API.
CAnimationController::OnHasPriorityConclude
Wird vom Framework aufgerufen, um Konflikte bei der Planung zu beheben.
virtual BOOL OnHasPriorityConclude(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
Parameter
pGroupScheduled
Die Gruppe, die das aktuell geplante Storyboard besitzt.
pGroupNew
Die Gruppe, die das neue Storyboard besitzt, für das ein Planungskonflikt mit dem geplanten Storyboard im Besitz von pGroupScheduled besteht.
priorityEffect
Die möglichen Auswirkungen auf pGroupNew, wenn pGroupScheduled eine höhere Priorität hat.
Rückgabewert
Muss „true“ zurückgeben, wenn das Storyboard im Besitz von pGroupNew Priorität hat. Muss „false“ zurückgeben, wenn das Storyboard im Besitz von pGroupScheduled Priorität hat.
Hinweise
Diese Methode wird aufgerufen, wenn Sie Prioritätsvergleichsereignisse mit CAnimationController::EnablePriorityComparisonHandler aktivieren und UI_ANIMATION_PHT_CONCLUDE angeben. Sie kann in einer abgeleiteten Klasse überschrieben werden, um anwendungsspezifische Aktionen zu verwenden. Weitere Informationen zur Konfliktverwaltung finden Sie in der Dokumentation zur Windows-Animations-API.
CAnimationController::OnHasPriorityTrim
Wird vom Framework aufgerufen, um Konflikte bei der Planung zu beheben.
virtual BOOL OnHasPriorityTrim(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
Parameter
pGroupScheduled
Die Gruppe, die das aktuell geplante Storyboard besitzt.
pGroupNew
Die Gruppe, die das neue Storyboard besitzt, für das ein Planungskonflikt mit dem geplanten Storyboard im Besitz von pGroupScheduled besteht.
priorityEffect
Die möglichen Auswirkungen auf pGroupNew, wenn pGroupScheduled eine höhere Priorität hat.
Rückgabewert
Muss „true“ zurückgeben, wenn das Storyboard im Besitz von pGroupNew Priorität hat. Muss „false“ zurückgeben, wenn das Storyboard im Besitz von pGroupScheduled Priorität hat.
Hinweise
Diese Methode wird aufgerufen, wenn Sie Prioritätsvergleichsereignisse mit CAnimationController::EnablePriorityComparisonHandler aktivieren und UI_ANIMATION_PHT_TRIM angeben. Sie kann in einer abgeleiteten Klasse überschrieben werden, um anwendungsspezifische Aktionen zu verwenden. Weitere Informationen zur Konfliktverwaltung finden Sie in der Dokumentation zur Windows-Animations-API.
CAnimationController::OnStoryboardStatusChanged
Wird vom Framework aufgerufen, wenn sich der Storyboardstatus geändert hat.
virtual void OnStoryboardStatusChanged(
CAnimationGroup* pGroup,
UI_ANIMATION_STORYBOARD_STATUS newStatus,
UI_ANIMATION_STORYBOARD_STATUS previousStatus);
Parameter
pGroup
Ein Zeiger auf eine Animationsgruppe, die das Storyboard besitzt, dessen Status geändert wurde.
newStatus
Gibt den neuen Status an.
previousStatus
Gibt den vorherigen Status an.
Hinweise
Diese Methode wird aufgerufen, wenn Sie Storyboardereignisse mit CAnimationController::EnableStoryboardEventHandler aktivieren. Sie kann in einer abgeleiteten Klasse überschrieben werden, um anwendungsspezifische Aktionen zu verwenden.
CAnimationController::OnStoryboardUpdated
Wird vom Framework aufgerufen, wenn storyboard aktualisiert wurde.
virtual void OnStoryboardUpdated(CAnimationGroup* pGroup);
Parameter
pGroup
Ein Zeiger auf eine Gruppe, die das Storyboard besitzt.
Hinweise
Diese Methode wird aufgerufen, wenn Sie Storyboardereignisse mit CAnimationController::EnableStoryboardEventHandler aktivieren. Sie kann in einer abgeleiteten Klasse überschrieben werden, um anwendungsspezifische Aktionen zu verwenden.
CAnimationController::RemoveAllAnimationGroups
Entfernt alle Animationsgruppen aus dem Animationscontroller.
void RemoveAllAnimationGroups();
Hinweise
Alle Gruppen werden gelöscht, ihr Zeiger muss, wenn sie auf Anwendungsebene gespeichert sind, ungültig sein. Wenn CAnimationGroup::m_bAutodestroyAnimationObjects für eine gelöschte Gruppe WAHR ist, werden alle Animationsobjekte, die zu dieser Gruppe gehören, gelöscht; andernfalls werden ihre Verweise auf den übergeordneten Animationscontroller auf NULL festgelegt und können einem anderen Controller hinzugefügt werden.
CAnimationController::RemoveAnimationGroup
Entfernt eine Animationsgruppe mit der angegebenen ID vom Animationscontroller.
void RemoveAnimationGroup(UINT32 nGroupID);
Parameter
nGroupID
Gibt die Animationsgruppen-ID an.
Hinweise
Diese Methode entfernt eine Animationsgruppe aus der internen Liste von Gruppen und löscht sie. Wenn Sie daher einen Zeiger auf diese Animationsgruppe gespeichert haben, muss sie ungültig sein. Wenn CAnimationGroup::m_bAutodestroyAnimationObjects WAHR ist, werden alle Animationsobjekte, die zu dieser Gruppe gehören, gelöscht. andernfalls werden ihre Verweise auf den übergeordneten Animationscontroller auf NULL festgelegt und können einem anderen Controller hinzugefügt werden.
CAnimationController::RemoveAnimationObject
Entfernen Sie ein Animationsobjekt aus dem Animationscontroller.
void RemoveAnimationObject(
CAnimationBaseObject* pObject,
BOOL bNoDelete = FALSE);
Parameter
pObject
Ein Zeiger auf ein Animationsobjekt.
bNoDelete
Wenn dieser Parameter TRUE ist, wird das Objekt beim Entfernen nicht gelöscht.
Hinweise
Entfernt ein Animationsobjekt aus dem Animationscontroller und der Animationsgruppe. Rufen Sie diese Funktion auf, wenn ein bestimmtes Objekt nicht mehr animiert werden soll, oder wenn Sie das Objekt in einen anderen Animationscontroller verschieben müssen. Im letzten Fall muss bNoDelete WAHR sein.
CAnimationController::RemoveTransitions
Entfernt Übergänge aus Animationsobjekten, die zur angegebenen Gruppe gehören.
void RemoveTransitions(UINT32 nGroupID);
Parameter
nGroupID
Gibt die Gruppen-ID an.
Hinweise
Die Gruppe durchläuft seine Animationsobjekte und ruft ClearTransitions(FALSE) für jedes Animationsobjekt auf. Diese Methode wird vom Framework aufgerufen, nachdem die Animation geplant wurde.
CAnimationController::ScheduleGroup
Plant eine Animation.
BOOL ScheduleGroup(
UINT32 nGroupID,
UI_ANIMATION_SECONDS time = 0.0);
Parameter
nGroupID
Gibt die zu planende Animationsgruppen-ID an.
time
Gibt die Zeit für den Zeitplan an.
Rückgabewert
TRUE, wenn die Animation erfolgreich geplant wurde. FALSE, wenn das Storyboard nicht erstellt wurde oder ein anderer Fehler auftritt.
Hinweise
Sie müssen AnimateGroup mit dem Parameter bScheduleNow aufrufen, der vor ScheduleGroup auf FALSE festgelegt ist. Sie können die gewünschte Animationszeit angeben, die von IUIAnimationTimer::GetTime abgerufen wird. Wenn der Zeitparameter 0.0 ist, wird die Animation für die aktuelle Uhrzeit geplant.
CAnimationController::SetRelatedWnd
Stellt eine Beziehung zwischen animationscontroller und einem Fenster her.
void SetRelatedWnd(CWnd* pWnd);
Parameter
pWnd
Ein Zeiger auf das festzulegende Fensterobjekt.
Hinweise
Wenn ein zugehöriges CWnd-Objekt festgelegt ist, kann der Animationscontroller es automatisch aktualisieren (WM_PAINT Nachricht senden), wenn der Status des Animations-Managers geändert wurde oder das Ereignis nach der Aktualisierung des Zeitgebers aufgetreten ist.
CAnimationController::UpdateAnimationManager
Leitet den Animations-Manager an, die Werte aller Animationsvariablen zu aktualisieren.
virtual void UpdateAnimationManager();
Hinweise
Durch Aufrufen dieser Methode wechselt der Animations-Manager zur aktuellen Zeit, ändert den Status von Storyboards nach Bedarf und aktualisiert alle Animationsvariablen auf geeignete interpolierte Werte. Intern ruft diese Methode IUIAnimationTimer::GetTime(timeNow) und IUIAnimationManager::Update(timeNow) auf. Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um dieses Verhalten anzupassen.