CAnimationBaseObject-Klasse
Die Basisklasse für alle Animationsobjekte.
class CAnimationBaseObject : public CObject;
Name | Beschreibung |
---|---|
CAnimationBaseObject::CAnimationBaseObject | Überladen. Erstellt ein Animationsobjekt. |
CAnimationBaseObject::~CAnimationBaseObject | Der Destruktor. Wird aufgerufen, wenn ein Animationsobjekt zerstört wird. |
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. |
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. |
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. |
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).
CAnimationBaseObject
Header: afxanimationcontroller.h
Der Destruktor. Wird aufgerufen, wenn ein Animationsobjekt zerstört wird.
virtual ~CAnimationBaseObject();
Fügt Übergänge zum Storyboard mit gekapselten Animationsvariablen hinzu.
virtual BOOL ApplyTransitions(
IUIAnimationStoryboard* pStoryboard,
BOOL bDependOnKeyframes);
pStoryboard
Ein Zeiger auf ein Storyboard.
bDependOnKeyframes
Wenn FALSE, fügt diese Methode nur die Übergänge hinzu, die nicht von Keyframes abhängen.
TRUE, wenn Übergänge erfolgreich hinzugefügt wurden.
Fügt verwandte Übergänge hinzu, die mit AddTransition (überladene Methoden in abgeleiteten Klassen) zum Storyboard hinzugefügt wurden.
Erstellt ein Animationsobjekt.
CAnimationBaseObject();
CAnimationBaseObject(
UINT32 nGroupID,
UINT32 nObjectID = (UINT32)-1,
DWORD dwUserData = 0);
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.
Erstellt ein Animationsobjekt und weist standardmäßige Objekt-ID (0) und Gruppen-ID (0) zu.
Entfernt alle zugehörigen Übergänge.
virtual void ClearTransitions(BOOL bAutodestroy);
bAutodestroy
Gibt an, ob Übergangsobjekte automatisch zerstört oder einfach aus der verknüpften Liste entfernt werden sollen.
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.
Bestimmt, ob ein Animationsobjekt eine bestimmte Animationsvariable enthält.
virtual BOOL ContainsVariable(IUIAnimationVariable* pVariable);
pVariable
Ein Zeiger auf die Animationsvariable.
TRUE, wenn die Animationsvariable im Animationsobjekt enthalten ist; andernfalls FALSE.
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.
Erstellt Übergänge, die einem Animationsobjekt zugeordnet sind.
BOOL CreateTransitions();
TRUE, wenn Übergänge erfolgreich erstellt wurden; andernfalls FALSE.
Schleifen über eine Liste von Animationsvariablen, die in einem abgeleiteten Animationsobjekt gekapselt sind, und erstellt Übergänge, die den einzelnen Animationsvariablen zugeordnet sind.
Trennt ein Animationsobjekt vom übergeordneten Animationscontroller.
void DetachFromController();
Diese Methode wird intern verwendet.
Richtet den Ereignishandler "Integer Value Changed" ein.
virtual void EnableIntegerValueChangedEvent(
CAnimationController* pController,
BOOL bEnable);
pController
Ein Zeiger auf einen übergeordneten Controller.
bEnable
Gibt an, ob das Integer Value Changed-Ereignis aktiviert oder deaktiviert werden soll.
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.
Richtet den Ereignishandler für Wertänderung ein.
virtual void EnableValueChangedEvent(
CAnimationController* pController,
BOOL bEnable);
pController
Ein Zeiger auf einen übergeordneten Controller.
bEnable
Gibt an, ob das Value Changed-Ereignis aktiviert oder deaktiviert werden soll.
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.
Sammelt Zeiger auf enthaltene Animationsvariablen.
virtual void GetAnimationVariableList(
CList<CAnimationVariable*,
CAnimationVariable*>& list) = 0;
list
Eine Liste, die mit Animationsvariablen gefüllt werden muss, die in einem Animationsobjekt enthalten sind.
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.
Gibt an, ob verwandter Übergang automatisch zerstört wird.
BOOL GetAutodestroyTransitions() const;
Wenn WAHR, werden verwandte Übergänge automatisch zerstört; Wenn FALSE, sollten Übergangsobjekte durch Aufrufen der Anwendung abgeglichen werden.
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.
Gibt die aktuelle Gruppen-ID zurück.
UINT32 GetGroupID() const;
Aktuelle Gruppen-ID.
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.
Gibt die aktuelle Objekt-ID zurück.
UINT32 GetObjectID() const;
Aktuelle Objekt-ID.
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.
Gibt benutzerdefinierte Daten zurück.
DWORD GetUserData() const;
Ein Wert von benutzerdefinierten Daten.
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.
Gibt an, ob verwandte Übergänge automatisch zerstört werden sollen.
BOOL m_bAutodestroyTransitions;
Speichert benutzerdefinierte Daten.
DWORD m_dwUserData;
Gibt die Gruppen-ID des Animationsobjekts an.
UINT32 m_nGroupID;
Gibt die Objekt-ID des Animationsobjekts an.
UINT32 m_nObjectID;
Ein Zeiger auf den übergeordneten Animationscontroller.
CAnimationController* m_pParentController;
Legt eine Kennzeichnung fest, um Übergänge automatisch zu zerstören.
void SetAutodestroyTransitions(BOOL bValue);
bValue
Gibt das Kennzeichen für die automatische Vernichtung an.
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.
Legt neue IDs fest.
void SetID(
UINT32 nObjectID,
UINT32 nGroupID = 0);
nObjectID
Gibt die neue Objekt-ID an.
nGroupID
Gibt die neue Gruppen-ID an.
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).
Stellt eine Beziehung zwischen Animationsvariablen her, die in einem Animationsobjekt enthalten sind, und deren Container.
virtual void SetParentAnimationObjects();
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.
Legt benutzerdefinierte Daten fest.
void SetUserData (DWORD dwUserData);
dwUserData
Gibt die benutzerdefinierten Daten an.
Verwenden Sie diese Methode, um einem Animationsobjekt benutzerdefinierte Daten zuzuordnen. Diese Daten können später zur Laufzeit von GetUserData abgerufen werden.