CAnimationBaseObject クラス
すべてのアニメーション オブジェクトの基底クラスです。
構文
class CAnimationBaseObject : public CObject;
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CAnimationBaseObject::CAnimationBaseObject | 過負荷です。 アニメーション オブジェクトを構築します。 |
CAnimationBaseObject::~CAnimationBaseObject | デストラクター。 アニメーション オブジェクトが破棄されるときに呼び出されます。 |
パブリック メソッド
名前 | 説明 |
---|---|
CAnimationBaseObject::ApplyTransitions | カプセル化されたアニメーション変数を使用してストーリーボードに遷移を追加します。 |
CAnimationBaseObject::ClearTransitions | 関連するすべての遷移を削除します。 |
CAnimationBaseObject::ContainsVariable | アニメーション オブジェクトに特定のアニメーション変数が含まれているかどうかを判断します。 |
CAnimationBaseObject::CreateTransitions | アニメーション オブジェクトに関連付けられた画面切り替えを作成します。 |
CAnimationBaseObject::D etachFromController | 親アニメーション コントローラからアニメーション オブジェクトをデタッチします。 |
CAnimationBaseObject::EnableIntegerValueChangedEvent | Integer Value Changed イベント ハンドラーを設定します。 |
CAnimationBaseObject::EnableValueChangedEvent | Value Changed イベント ハンドラーを設定します。 |
CAnimationBaseObject::GetAutodestroyTransitions | 関連する遷移が自動的に破棄されるかどうかを示します。 |
CAnimationBaseObject::GetGroupID | 現在のグループ ID を返します。 |
CAnimationBaseObject::GetObjectID | 現在のオブジェクト ID を返します。 |
CAnimationBaseObject::GetUserData | ユーザー定義データを返します。 |
CAnimationBaseObject::SetAutodestroyTransitions | 遷移を自動的に破棄するフラグを設定します。 |
CAnimationBaseObject::SetID | 新しい ID を設定します。 |
CAnimationBaseObject::SetUserData | ユーザー定義データを設定します。 |
保護メソッド
名前 | 説明 |
---|---|
CAnimationBaseObject::GetAnimationVariableList | 含まれているアニメーション変数へのポインターを収集します。 |
CAnimationBaseObject::SetParentAnimationObjects | アニメーション オブジェクトに含まれるアニメーション変数とそのコンテナーの間にリレーションシップを確立します。 |
プロテクト データ メンバー
名前 | 説明 |
---|---|
CAnimationBaseObject::m_bAutodestroyTransitions | 関連する遷移を自動的に破棄するかどうかを指定します。 |
CAnimationBaseObject::m_dwUserData | ユーザー定義データを格納します。 |
CAnimationBaseObject::m_nGroupID | アニメーション オブジェクトのグループ ID を指定します。 |
CAnimationBaseObject::m_nObjectID | アニメーション オブジェクトのオブジェクト ID を指定します。 |
CAnimationBaseObject::m_pParentController | 親アニメーション コントローラーへのポインター。 |
解説
このクラスは、すべてのアニメーション オブジェクトの基本的なメソッドを実装します。 アニメーション オブジェクトは、アプリケーション内の値、ポイント、サイズ、四角形、または色のほか、任意のカスタム エンティティを表すことができます。 アニメーション オブジェクトはアニメーション グループに格納されます (CAnimationGroup を参照)。 各グループは個別にアニメーション化でき、ストーリーボードのアナログとして扱うことができます。 アニメーション オブジェクトは、その論理表現に応じて、1 つ以上のアニメーション変数 (CAnimationVariable を参照) をカプセル化します。 たとえば、CAnimationRect には 4 つのアニメーション変数 (四角形の各辺に対して 1 つの変数) が含まれています。 各アニメーション オブジェクト クラスは、オーバーロードされた AddTransition メソッドを公開します。これは、カプセル化されたアニメーション変数に遷移を適用するために使用する必要があります。 アニメーション オブジェクトは、オブジェクト ID (必要に応じて) とグループ ID で識別できます。 グループ ID は、アニメーション オブジェクトを正しいグループに配置するために必要ですが、グループ ID が指定されていない場合、オブジェクトは ID 0 の既定のグループに配置されます。 別の GroupID で SetID を呼び出すと、アニメーション オブジェクトが別のグループに移動されます (必要に応じて新しいグループが作成されます)。
継承階層
CAnimationBaseObject
要件
ヘッダー: afxanimationcontroller.h
CAnimationBaseObject::~CAnimationBaseObject
デストラクター。 アニメーション オブジェクトが破棄されるときに呼び出されます。
virtual ~CAnimationBaseObject();
CAnimationBaseObject::ApplyTransitions
カプセル化されたアニメーション変数を使用してストーリーボードに遷移を追加します。
virtual BOOL ApplyTransitions(
IUIAnimationStoryboard* pStoryboard,
BOOL bDependOnKeyframes);
パラメーター
pStoryboard
ストーリーボードへのポインター。
bDependOnKeyframes
FALSE の場合、このメソッドはキーフレームに依存しない遷移のみを追加します。
戻り値
遷移が正常に追加された場合は TRUE。
解説
AddTransition (派生クラスのオーバーロードされたメソッド) で追加された関連する遷移をストーリーボードに追加します。
CAnimationBaseObject::CAnimationBaseObject
アニメーション オブジェクトを構築します。
CAnimationBaseObject();
CAnimationBaseObject(
UINT32 nGroupID,
UINT32 nObjectID = (UINT32)-1,
DWORD dwUserData = 0);
パラメーター
nGroupID
グループ ID を指定します。
nObjectID
オブジェクト ID を指定します。
dwUserData
ユーザー定義データ。アニメーション オブジェクトに関連付けることができ、実行時に後で取得できます。
解説
アニメーション オブジェクトを構築し、既定のオブジェクト ID (0) とグループ ID (0) を割り当てます。
CAnimationBaseObject::ClearTransitions
関連するすべての遷移を削除します。
virtual void ClearTransitions(BOOL bAutodestroy);
パラメーター
bAutodestroy
遷移オブジェクトを自動的に破棄するか、または単に関連リストから削除するかを指定します。
解説
bAutodestroy または m_bAutodestroyTransitions フラグが TRUE の場合、関連するすべての遷移を削除し、破棄します。 遷移は、スタックに割り当てられない場合にのみ、自動的に破棄する必要があります。 上記のフラグが FALSE の場合、遷移は関連する遷移の内部リストから削除されます。
CAnimationBaseObject::ContainsVariable
アニメーション オブジェクトに特定のアニメーション変数が含まれているかどうかを判断します。
virtual BOOL ContainsVariable(IUIAnimationVariable* pVariable);
パラメーター
pVariable
アニメーション変数へのポインター。
戻り値
アニメーション変数がアニメーション オブジェクトに含まれている場合は TRUE。それ以外の場合は FALSE。
解説
このメソッドは、pVariable で指定されたアニメーション変数がアニメーション オブジェクト内に含まれているかどうかを判断するために使用できます。 アニメーション オブジェクトには、その種類に応じて、複数のアニメーション変数が含まれる場合があります。 たとえば、CAnimationColor には、色コンポーネント (赤、緑、青) ごとに 1 つずつ、3 つの変数が含まれています。 アニメーション変数の値が変更されると、Windows アニメーション API は ValueChanged イベントまたは IntegerValueChanged イベント (有効な場合) を送信します。このイベントのパラメーターは、アニメーション変数のインターフェイス IUIAnimationVariable へのポインターです。 このメソッドは、含まれている COM オブジェクトへのポインターからアニメーションへのポインターを取得するのに役立ちます。
CAnimationBaseObject::CreateTransitions
アニメーション オブジェクトに関連付けられた画面切り替えを作成します。
BOOL CreateTransitions();
戻り値
遷移が正常に作成された場合は TRUE。それ以外の場合は FALSE。
解説
派生アニメーション オブジェクトにカプセル化されたアニメーション変数の一覧をループ処理し、各アニメーション変数に関連付けられた遷移を作成します。
CAnimationBaseObject::D etachFromController
親アニメーション コントローラからアニメーション オブジェクトをデタッチします。
void DetachFromController();
解説
このメソッドは内部的に使用されます。
CAnimationBaseObject::EnableIntegerValueChangedEvent
Integer Value Changed イベント ハンドラーを設定します。
virtual void EnableIntegerValueChangedEvent(
CAnimationController* pController,
BOOL bEnable);
パラメーター
pController
親コントローラーへのポインター。
bEnable
Integer Value Changed イベントを有効にするか無効にするかを指定します。
解説
Integer Value Changed イベント ハンドラーが有効になっている場合は、CAnimationController::OnAnimationIntegerValueChanged メソッドでこのイベントを処理できます。このイベントは、CAnimationController 派生クラスでオーバーライドする必要があります。 このメソッドは、アニメーションの整数値が変更されるたびに呼び出されます。
CAnimationBaseObject::EnableValueChangedEvent
Value Changed イベント ハンドラーを設定します。
virtual void EnableValueChangedEvent(
CAnimationController* pController,
BOOL bEnable);
パラメーター
pController
親コントローラーへのポインター。
bEnable
Value Changed イベントを有効にするか無効にするかを指定します。
解説
Value Changed イベント ハンドラーが有効になっている場合は、CAnimationController::OnAnimationValueChanged メソッドでこのイベントを処理できます。このイベントは、CAnimationController 派生クラスでオーバーライドする必要があります。 このメソッドは、アニメーション値が変更されるたびに呼び出されます。
CAnimationBaseObject::GetAnimationVariableList
含まれているアニメーション変数へのポインターを収集します。
virtual void GetAnimationVariableList(
CList<CAnimationVariable*,
CAnimationVariable*>& list) = 0;
パラメーター
list
アニメーション オブジェクトに含まれるアニメーション変数を入力する必要があるリスト。
解説
この純粋仮想メソッドは、派生クラスでオーバーライドする必要があります。 アニメーション オブジェクトには、その種類に応じて、1 つ以上のアニメーション変数が含まれます。 たとえば、CAnimationPoint には、それぞれ X 座標と Y 座標の 2 つの変数が含まれています。 基底クラス CAnimationBaseObject は、アニメーション変数の一覧に作用するいくつかのジェネリック メソッドを実装します。ApplyTransitions、ClearTransitions、EnableValueChangedEvent、EnableIntegerValueChangedEvent です。 これらのメソッドは、GetAnimationVariableList を呼び出します。これは、特定のアニメーション オブジェクトに含まれる実際のアニメーション変数を持つ派生クラスに格納され、リストをループして必要なアクションを実行します。 カスタム アニメーション オブジェクトを作成する場合は、そのオブジェクトに含まれるすべてのアニメーション変数list に追加する必要があります。
CAnimationBaseObject::GetAutodestroyTransitions
関連する遷移が自動的に破棄されるかどうかを示します。
BOOL GetAutodestroyTransitions() const;
戻り値
TRUE の場合、関連する遷移は自動的に破棄されます。FALSE の場合は、アプリケーションを呼び出して遷移オブジェクトの割り当てを解除する必要があります。
解説
既定では、このフラグは TRUE です。 このフラグは、スタックに遷移を割り当てた場合、または遷移を呼び出し元アプリケーションによって割り当て解除する必要がある場合にのみ設定します。
CAnimationBaseObject::GetGroupID
現在のグループ ID を返します。
UINT32 GetGroupID() const;
戻り値
現在のグループ ID。
解説
このメソッドを使用して、グループ ID を取得します。 コンストラクターまたは SetID でグループ ID が明示的に設定されていない場合は 0 になります。
CAnimationBaseObject::GetObjectID
現在のオブジェクト ID を返します。
UINT32 GetObjectID() const;
戻り値
現在のオブジェクト ID。
解説
オブジェクト ID を取得するには、このメソッドを使用します。 オブジェクト ID がコンストラクターまたは SetID で明示的に設定されていない場合は 0 になります。
CAnimationBaseObject::GetUserData
ユーザー定義データを返します。
DWORD GetUserData() const;
戻り値
カスタム データの値。
解説
実行時にカスタム データを取得するには、このメソッドを呼び出します。 コンストラクターまたは SetUserData で明示的に初期化されていない場合、戻り値は 0 になります。
CAnimationBaseObject::m_bAutodestroyTransitions
関連する遷移を自動的に破棄するかどうかを指定します。
BOOL m_bAutodestroyTransitions;
CAnimationBaseObject::m_dwUserData
ユーザー定義データを格納します。
DWORD m_dwUserData;
CAnimationBaseObject::m_nGroupID
アニメーション オブジェクトのグループ ID を指定します。
UINT32 m_nGroupID;
CAnimationBaseObject::m_nObjectID
アニメーション オブジェクトのオブジェクト ID を指定します。
UINT32 m_nObjectID;
CAnimationBaseObject::m_pParentController
親アニメーション コントローラーへのポインター。
CAnimationController* m_pParentController;
CAnimationBaseObject::SetAutodestroyTransitions
遷移を自動的に破棄するフラグを設定します。
void SetAutodestroyTransitions(BOOL bValue);
パラメーター
bValue
自動破棄フラグを指定します。
解説
このフラグは、演算子 new を使用して遷移オブジェクトを割り当てた場合にのみ設定します。 何らかの理由で遷移オブジェクトがスタックに割り当てられている場合、自動破棄フラグは FALSE にする必要があります。 既定では、このフラグは TRUE です。
CAnimationBaseObject::SetID
新しい ID を設定します。
void SetID(
UINT32 nObjectID,
UINT32 nGroupID = 0);
パラメーター
nObjectID
新しいオブジェクト ID を指定します。
nGroupID
新しいグループ ID を指定します。
解説
オブジェクト ID とグループ ID を変更できます。 新しいグループ ID が現在の ID と異なる場合、アニメーション オブジェクトは別のグループに移動されます (必要に応じて、新しいグループが作成されます)。
CAnimationBaseObject::SetParentAnimationObjects
アニメーション オブジェクトに含まれるアニメーション変数とそのコンテナーの間にリレーションシップを確立します。
virtual void SetParentAnimationObjects();
解説
このヘルパーを使用すると、アニメーション オブジェクトに含まれるアニメーション変数とそのコンテナーの間にリレーションシップを確立できます。 アニメーション変数をループ処理し、親アニメーション オブジェクトへのバック ポインターを各アニメーション変数に設定します。 現在の実装では、実際のリレーションシップは CAnimationBaseObject::ApplyTransitions で確立されるため、CAnimationGroup::Animate を呼び出すまでバック ポインターは設定されません。 リレーションシップを知ることは、イベントを処理するときに役立ち、CAnimationVariable から親アニメーション オブジェクトを取得する必要がある場合に役立ちます。 CAnimationVariable::GetParentAnimationObject を使用します。
CAnimationBaseObject::SetUserData
ユーザー定義データを設定します。
void SetUserData (DWORD dwUserData);
パラメーター
dwUserData
カスタム データを指定します。
解説
カスタム データをアニメーション オブジェクトに関連付けるには、このメソッドを使用します。 このデータは、後で GetUserData によって実行時に取得される可能性があります。