CAnimationBaseObject-Klasse
Die Basisklasse für alle Animationsobjekte.
Syntax
class CAnimationBaseObject : public CObject;
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CAnimationBaseObject::CAnimationBaseObject | Überladen. Erstellt ein Animationsobjekt. |
CAnimationBaseObject::~CAnimationBaseObject | Der Destruktor. Wird aufgerufen, wenn ein Animationsobjekt zerstört wird. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CAnimationBaseObject::ApplyTransitions | Fügt Übergänge zum Storyboard mit gekapselten Animationsvariablen hinzu. |
CAnimationBaseObject::ClearTransitions | Entfernt alle zugehörigen Übergänge. |
CAnimationBaseObject::ContainsVariable | Bestimmt, ob ein Animationsobjekt eine bestimmte Animationsvariable enthält. |
CAnimationBaseObject::CreateTransitions | Erstellt Übergänge, die einem Animationsobjekt zugeordnet sind. |
CAnimationBaseObject::D etachFromController | Trennt ein Animationsobjekt vom übergeordneten Animationscontroller. |
CAnimationBaseObject::EnableIntegerValueChangedEvent | Richtet den Ereignishandler "Integer Value Changed" ein. |
CAnimationBaseObject::EnableValueChangedEvent | Richtet den Ereignishandler für Wertänderung ein. |
CAnimationBaseObject::GetAutodestroyTransitions | Gibt an, ob verwandter Übergang automatisch zerstört wird. |
CAnimationBaseObject::GetGroupID | Gibt die aktuelle Gruppen-ID zurück. |
CAnimationBaseObject::GetObjectID | Gibt die aktuelle Objekt-ID zurück. |
CAnimationBaseObject::GetUserData | Gibt benutzerdefinierte Daten zurück. |
CAnimationBaseObject::SetAutodestroyTransitions | Legt eine Kennzeichnung fest, um Übergänge automatisch zu zerstören. |
CAnimationBaseObject::SetID | Legt neue IDs fest. |
CAnimationBaseObject::SetUserData | Legt benutzerdefinierte Daten fest. |
Geschützte Methoden
Name | Beschreibung |
---|---|
CAnimationBaseObject::GetAnimationVariableList | Sammelt Zeiger auf enthaltene Animationsvariablen. |
CAnimationBaseObject::SetParentAnimationObjects | Stellt eine Beziehung zwischen Animationsvariablen her, die in einem Animationsobjekt enthalten sind, und deren Container. |
Geschützte Datenmember
Name | Beschreibung |
---|---|
CAnimationBaseObject::m_bAutodestroyTransitions | Gibt an, ob verwandte Übergänge automatisch zerstört werden sollen. |
CAnimationBaseObject::m_dwUserData | Speichert benutzerdefinierte Daten. |
CAnimationBaseObject::m_nGroupID | Gibt die Gruppen-ID des Animationsobjekts an. |
CAnimationBaseObject::m_nObjectID | Gibt die Objekt-ID des Animationsobjekts an. |
CAnimationBaseObject::m_pParentController | Ein Zeiger auf den übergeordneten Animationscontroller. |
Hinweise
Diese Klasse implementiert grundlegende Methoden für alle Animationsobjekte. Ein Animationsobjekt kann einen Wert, einen Punkt, eine Größe, ein Rechteck oder eine Farbe in einer Anwendung sowie eine beliebige benutzerdefinierte Entität darstellen. Animationsobjekte werden in Animationsgruppen gespeichert (siehe CAnimationGroup). Jede Gruppe kann separat animiert werden und kann als analoges Storyboard behandelt werden. Ein Animationsobjekt kapselt je nach logischer Darstellung eine oder mehrere Animationsvariablen (siehe CAnimationVariable). Beispielsweise enthält CAnimationRect vier Animationsvariablen – eine Variable für jede Seite des Rechtecks. Jede Animationsobjektklasse macht überladene AddTransition-Methode verfügbar, die verwendet werden soll, um Übergänge auf gekapselte Animationsvariablen anzuwenden. Ein Animationsobjekt kann durch Objekt-ID (optional) und durch Gruppen-ID identifiziert werden. Eine Gruppen-ID ist erforderlich, um ein Animationsobjekt zur Korrektierung der Gruppe zu platzieren, aber wenn keine Gruppen-ID angegeben ist, wird ein Objekt in der Standardgruppe mit DER ID 0 platziert. Wenn Sie SetID mit unterschiedlicher GroupID aufrufen, wird ein Animationsobjekt in eine andere Gruppe verschoben (bei Bedarf wird eine neue Gruppe erstellt).
Vererbungshierarchie
CAnimationBaseObject
Anforderungen
Header: afxanimationcontroller.h
CAnimationBaseObject::~CAnimationBaseObject
Der Destruktor. Wird aufgerufen, wenn ein Animationsobjekt zerstört wird.
virtual ~CAnimationBaseObject();
CAnimationBaseObject::ApplyTransitions
Fügt Übergänge zum Storyboard mit gekapselten Animationsvariablen hinzu.
virtual BOOL ApplyTransitions(
IUIAnimationStoryboard* pStoryboard,
BOOL bDependOnKeyframes);
Parameter
pStoryboard
Ein Zeiger auf ein Storyboard.
bDependOnKeyframes
Wenn FALSE, fügt diese Methode nur die Übergänge hinzu, die nicht von Keyframes abhängen.
Rückgabewert
TRUE, wenn Übergänge erfolgreich hinzugefügt wurden.
Hinweise
Fügt verwandte Übergänge hinzu, die mit AddTransition (überladene Methoden in abgeleiteten Klassen) zum Storyboard hinzugefügt wurden.
CAnimationBaseObject::CAnimationBaseObject
Erstellt ein Animationsobjekt.
CAnimationBaseObject();
CAnimationBaseObject(
UINT32 nGroupID,
UINT32 nObjectID = (UINT32)-1,
DWORD dwUserData = 0);
Parameter
nGroupID
Gibt die Gruppen-ID an.
nObjectID
Gibt die Objekt-ID an.
dwUserData
Benutzerdefinierte Daten, die dem Animationsobjekt zugeordnet und später zur Laufzeit abgerufen werden können.
Hinweise
Erstellt ein Animationsobjekt und weist standardmäßige Objekt-ID (0) und Gruppen-ID (0) zu.
CAnimationBaseObject::ClearTransitions
Entfernt alle zugehörigen Übergänge.
virtual void ClearTransitions(BOOL bAutodestroy);
Parameter
bAutodestroy
Gibt an, ob Übergangsobjekte automatisch zerstört oder einfach aus der verknüpften Liste entfernt werden sollen.
Hinweise
Entfernt alle zugehörigen Übergänge und zerstört sie, wenn bAutodestroy oder m_bAutodestroyTransitions Flag WAHR ist. Übergänge sollten nur dann automatisch zerstört werden, wenn sie nicht auf dem Stapel zugeordnet sind. Wenn die obigen Flags FALSCH sind, werden Übergänge einfach aus der internen Liste verwandter Übergänge entfernt.
CAnimationBaseObject::ContainsVariable
Bestimmt, ob ein Animationsobjekt eine bestimmte Animationsvariable enthält.
virtual BOOL ContainsVariable(IUIAnimationVariable* pVariable);
Parameter
pVariable
Ein Zeiger auf die Animationsvariable.
Rückgabewert
TRUE, wenn die Animationsvariable im Animationsobjekt enthalten ist; andernfalls FALSE.
Hinweise
Diese Methode kann verwendet werden, um zu bestimmen, ob eine durch pVariable angegebene Animationsvariable in einem Animationsobjekt enthalten ist. Ein Animationsobjekt kann je nach Typ mehrere Animationsvariablen enthalten. Beispielsweise enthält CAnimationColor drei Variablen, eine für jede Farbkomponente (Rot, Grün und Blau). Wenn sich ein Wert der Animationsvariable geändert hat, sendet die Windows-Animations-API ValueChanged- oder IntegerValueChanged-Ereignisse (sofern aktiviert), und der Parameter dieses Ereignisses ist ein Zeiger auf die Schnittstelle IUIAnimationVariable der Animationsvariable. Diese Methode hilft beim Abrufen eines Zeigers auf Animationen von einem Zeiger auf ein enthaltenes COM-Objekt.
CAnimationBaseObject::CreateTransitions
Erstellt Übergänge, die einem Animationsobjekt zugeordnet sind.
BOOL CreateTransitions();
Rückgabewert
TRUE, wenn Übergänge erfolgreich erstellt wurden; andernfalls FALSE.
Hinweise
Schleifen über eine Liste von Animationsvariablen, die in einem abgeleiteten Animationsobjekt gekapselt sind, und erstellt Übergänge, die den einzelnen Animationsvariablen zugeordnet sind.
CAnimationBaseObject::D etachFromController
Trennt ein Animationsobjekt vom übergeordneten Animationscontroller.
void DetachFromController();
Hinweise
Diese Methode wird intern verwendet.
CAnimationBaseObject::EnableIntegerValueChangedEvent
Richtet den Ereignishandler "Integer Value Changed" ein.
virtual void EnableIntegerValueChangedEvent(
CAnimationController* pController,
BOOL bEnable);
Parameter
pController
Ein Zeiger auf einen übergeordneten Controller.
bEnable
Gibt an, ob das Integer Value Changed-Ereignis aktiviert oder deaktiviert werden soll.
Hinweise
Wenn der Ereignishandler "Integer Value Changed" aktiviert ist, können Sie dieses Ereignis in der CAnimationController::OnAnimationIntegerValueChanged-Methode behandeln, die in einer von CAnimationController abgeleiteten Klasse überschrieben werden soll. Diese Methode wird jedes Mal aufgerufen, wenn sich der Ganzzahlwert der Animation geändert hat.
CAnimationBaseObject::EnableValueChangedEvent
Richtet den Ereignishandler für Wertänderung ein.
virtual void EnableValueChangedEvent(
CAnimationController* pController,
BOOL bEnable);
Parameter
pController
Ein Zeiger auf einen übergeordneten Controller.
bEnable
Gibt an, ob das Value Changed-Ereignis aktiviert oder deaktiviert werden soll.
Hinweise
Wenn der Value Changed-Ereignishandler aktiviert ist, können Sie dieses Ereignis in der CAnimationController::OnAnimationValueChanged-Methode behandeln, die in einer von CAnimationController abgeleiteten Klasse überschrieben werden soll. Diese Methode wird jedes Mal aufgerufen, wenn sich der Animationswert geändert hat.
CAnimationBaseObject::GetAnimationVariableList
Sammelt Zeiger auf enthaltene Animationsvariablen.
virtual void GetAnimationVariableList(
CList<CAnimationVariable*,
CAnimationVariable*>& list) = 0;
Parameter
list
Eine Liste, die mit Animationsvariablen gefüllt werden muss, die in einem Animationsobjekt enthalten sind.
Hinweise
Diese reine virtuelle Methode muss in einer abgeleiteten Klasse überschrieben werden. Ein Animationsobjekt enthält je nach Typ eine oder mehrere Animationsvariablen. Beispielsweise enthält CAnimationPoint zwei Variablen für X- bzw. Y-Koordinaten. Die Basisklasse CAnimationBaseObject implementiert einige generische Methoden, die auf eine Liste von Animationsvariablen reagieren: ApplyTransitions, ClearTransitions, EnableValueChangedEvent, EnableIntegerValueChangedEvent. Diese Methoden rufen GetAnimationVariableList auf, die in einer abgeleiteten Klasse mit tatsächlichen Animationsvariablen gefüllt ist, die in einem bestimmten Animationsobjekt enthalten sind, und führen Sie dann eine Schleife über die Liste aus, und führen Sie die erforderlichen Aktionen aus. Wenn Sie ein benutzerdefiniertes Animationsobjekt erstellen, müssen Sie alle Animationsvariablen in diesem Objekt auflisten.
CAnimationBaseObject::GetAutodestroyTransitions
Gibt an, ob verwandter Übergang automatisch zerstört wird.
BOOL GetAutodestroyTransitions() const;
Rückgabewert
Wenn WAHR, werden verwandte Übergänge automatisch zerstört; Wenn FALSE, sollten Übergangsobjekte durch Aufrufen der Anwendung abgeglichen werden.
Hinweise
Standardmäßig ist dieses Kennzeichen TRUE. Legen Sie dieses Kennzeichen nur fest, wenn Sie den Übergang auf dem Stapel zugewiesen haben und/oder die Übergänge von der aufrufenden Anwendung abgeglichen werden sollen.
CAnimationBaseObject::GetGroupID
Gibt die aktuelle Gruppen-ID zurück.
UINT32 GetGroupID() const;
Rückgabewert
Aktuelle Gruppen-ID.
Hinweise
Verwenden Sie diese Methode, um die Gruppen-ID abzurufen. Es ist 0, wenn die Gruppen-ID nicht explizit im Konstruktor oder mit SetID festgelegt wurde.
CAnimationBaseObject::GetObjectID
Gibt die aktuelle Objekt-ID zurück.
UINT32 GetObjectID() const;
Rückgabewert
Aktuelle Objekt-ID.
Hinweise
Verwenden Sie diese Methode, um die Objekt-ID abzurufen. Es ist 0, wenn die Objekt-ID nicht explizit im Konstruktor oder mit SetID festgelegt wurde.
CAnimationBaseObject::GetUserData
Gibt benutzerdefinierte Daten zurück.
DWORD GetUserData() const;
Rückgabewert
Ein Wert von benutzerdefinierten Daten.
Hinweise
Rufen Sie diese Methode auf, um die benutzerdefinierten Daten zur Laufzeit abzurufen. Der zurückgegebene Wert ist 0, wenn er nicht explizit im Konstruktor oder mit SetUserData initialisiert wurde.
CAnimationBaseObject::m_bAutodestroyTransitions
Gibt an, ob verwandte Übergänge automatisch zerstört werden sollen.
BOOL m_bAutodestroyTransitions;
CAnimationBaseObject::m_dwUserData
Speichert benutzerdefinierte Daten.
DWORD m_dwUserData;
CAnimationBaseObject::m_nGroupID
Gibt die Gruppen-ID des Animationsobjekts an.
UINT32 m_nGroupID;
CAnimationBaseObject::m_nObjectID
Gibt die Objekt-ID des Animationsobjekts an.
UINT32 m_nObjectID;
CAnimationBaseObject::m_pParentController
Ein Zeiger auf den übergeordneten Animationscontroller.
CAnimationController* m_pParentController;
CAnimationBaseObject::SetAutodestroyTransitions
Legt eine Kennzeichnung fest, um Übergänge automatisch zu zerstören.
void SetAutodestroyTransitions(BOOL bValue);
Parameter
bValue
Gibt das Kennzeichen für die automatische Vernichtung an.
Hinweise
Legen Sie dieses Kennzeichen nur fest, wenn Sie Übergangsobjekte mit dem Operator neu zugewiesen haben. Wenn übergangsobjekte aus irgendeinem Grund auf dem Stapel zugeordnet sind, sollte das Kennzeichen für die automatische Zerstörung FALSCH sein. Standardmäßig ist dieses Kennzeichen TRUE.
CAnimationBaseObject::SetID
Legt neue IDs fest.
void SetID(
UINT32 nObjectID,
UINT32 nGroupID = 0);
Parameter
nObjectID
Gibt die neue Objekt-ID an.
nGroupID
Gibt die neue Gruppen-ID an.
Hinweise
Ermöglicht das Ändern der Objekt-ID und der Gruppen-ID. Wenn sich die neue Gruppen-ID von der aktuellen ID unterscheidet, wird ein Animationsobjekt in eine andere Gruppe verschoben (bei Bedarf wird eine neue Gruppe erstellt).
CAnimationBaseObject::SetParentAnimationObjects
Stellt eine Beziehung zwischen Animationsvariablen her, die in einem Animationsobjekt enthalten sind, und deren Container.
virtual void SetParentAnimationObjects();
Hinweise
Dieser Hilfsprogramm kann verwendet werden, um eine Beziehung zwischen Animationsvariablen in einem Animationsobjekt und dem zugehörigen Container herzustellen. Sie durchläuft Animationsvariablen und legt einen Rückzeiger auf ein übergeordnetes Animationsobjekt auf jede Animationsvariable fest. In der aktuellen Implementierung wird die tatsächliche Beziehung in CAnimationBaseObject::ApplyTransitions eingerichtet, daher werden Rückzeiger erst festgelegt, wenn Sie CAnimationGroup::Animate aufrufen. Das Kennen der Beziehung kann hilfreich sein, wenn Sie Ereignisse verarbeiten und ein übergeordnetes Animationsobjekt aus CAnimationVariable abrufen müssen. Verwenden Sie CAnimationVariable::GetParentAnimationObject.
CAnimationBaseObject::SetUserData
Legt benutzerdefinierte Daten fest.
void SetUserData (DWORD dwUserData);
Parameter
dwUserData
Gibt die benutzerdefinierten Daten an.
Hinweise
Verwenden Sie diese Methode, um einem Animationsobjekt benutzerdefinierte Daten zuzuordnen. Diese Daten können später zur Laufzeit von GetUserData abgerufen werden.