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

CObject

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.

Siehe auch

Klassen