Freigeben über


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

CObject

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.

Siehe auch

Klassen