CAnimationController クラス
アニメーションを作成および管理するための中心的なインターフェイスを提供する、アニメーション コントローラーを実装します。
構文
class CAnimationController : public CObject;
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CAnimationController::CAnimationController | アニメーション コントローラーを構築します。 |
CAnimationController::~CAnimationController | デストラクター。 アニメーション コントローラー オブジェクトが破棄されるときに呼び出されます。 |
パブリック メソッド
名前 | 説明 |
---|---|
CAnimationController::AddAnimationObject | アニメーション コントローラーに属するグループにアニメーション オブジェクトを追加します。 |
CAnimationController::AddKeyframeToGroup | グループ化するキーフレームを追加します。 |
CAnimationController::AnimateGroup | アニメーションを実行するグループを準備し、必要に応じてスケジュールします。 |
CAnimationController::CleanUpGroup | 過負荷です。 アニメーションがスケジュールされたときにグループをクリーンアップするためにフレームワークによって呼び出されます。 |
CAnimationController::CreateKeyframe | 過負荷です。 遷移に依存するキーフレームを作成し、指定したグループに追加します。 |
CAnimationController::EnableAnimationManagerEvent | アニメーション マネージャーの状態が変更されたときに呼び出すハンドラーを設定または解放します。 |
CAnimationController::EnableAnimationTimerEventHandler | タイミング イベントのハンドラーとタイミング更新のハンドラーを設定または解放します。 |
CAnimationController::EnablePriorityComparisonHandler | 優先度比較ハンドラーを設定または解放して、スケジュールされたストーリーボードをキャンセル、終了、トリミング、または圧縮できるかどうかを判断します。 |
CAnimationController::EnableStoryboardEventHandler | ストーリーボードの状態と更新イベントのハンドラーを設定または解放します。 |
CAnimationController::FindAnimationGroup | 過負荷です。 ストーリーボードでアニメーション グループを検索します。 |
CAnimationController::FindAnimationObject | 指定したアニメーション変数を含むアニメーション オブジェクトを検索します。 |
CAnimationController::GetKeyframeStoryboardStart | ストーリーボードの開始を識別するキーフレームを返します。 |
CAnimationController::GetUIAnimationManager | カプセル化された IUIAnimationManager オブジェクトへのアクセスを提供します。 |
CAnimationController::GetUIAnimationTimer | カプセル化された IUIAnimationTimer オブジェクトへのアクセスを提供します。 |
CAnimationController::GetUITransitionFactory | 遷移ライブラリの作成に失敗した場合は、IUIAnimationTransitionFactory インターフェイスまたは NULL へのポインター。 |
CAnimationController::GetUITransitionLibrary | カプセル化された IUIAnimationTransitionLibrary オブジェクトへのアクセスを提供します。 |
CAnimationController::IsAnimationInProgress | 少なくとも 1 つのグループがアニメーションを再生しているかどうかを示します。 |
CAnimationController::IsValid | アニメーション コントローラーが有効かどうかを示します。 |
CAnimationController::OnAnimationIntegerValueChanged | アニメーション変数の整数値が変更されたときにフレームワークによって呼び出されます。 |
CAnimationController::OnAnimationManagerStatusChanged | アニメーション マネージャーから StatusChanged イベントに応答してフレームワークによって呼び出されます。 |
CAnimationController::OnAnimationTimerPostUpdate | アニメーションの更新が完了した後、フレームワークによって呼び出されます。 |
CAnimationController::OnAnimationTimerPreUpdate | アニメーションの更新が開始される前にフレームワークによって呼び出されます。 |
CAnimationController::OnAnimationTimerRenderingTooSlow | アニメーションのレンダリング フレーム レートが望ましい最小フレーム レートを下回った場合にフレームワークによって呼び出されます。 |
CAnimationController::OnAnimationValueChanged | アニメーション変数の値が変更されたときにフレームワークによって呼び出されます。 |
CAnimationController::OnBeforeAnimationStart | アニメーションがスケジュールされる直前にフレームワークによって呼び出されます。 |
CAnimationController::OnHasPriorityCancel | スケジュールの競合を解決するために、フレームワークによって呼び出されます。 |
CAnimationController::OnHasPriorityCompress | スケジュールの競合を解決するために、フレームワークによって呼び出されます。 |
CAnimationController::OnHasPriorityConclude | スケジュールの競合を解決するために、フレームワークによって呼び出されます。 |
CAnimationController::OnHasPriorityTrim | スケジュールの競合を解決するために、フレームワークによって呼び出されます。 |
CAnimationController::OnStoryboardStatusChanged | ストーリーボードの状態が変更されたときにフレームワークによって呼び出されます。 |
CAnimationController::OnStoryboardUpdated | ストーリーボードが更新されたときにフレームワークによって呼び出されます。 |
CAnimationController::RemoveAllAnimationGroups | アニメーション コントローラーからすべてのアニメーション グループを削除します。 |
CAnimationController::RemoveAnimationGroup | 指定した ID を持つアニメーション グループをアニメーション コントローラーから削除します。 |
CAnimationController::RemoveAnimationObject | アニメーション コントローラーからアニメーション オブジェクトを削除します。 |
CAnimationController::RemoveTransitions | 指定したグループに属するアニメーション オブジェクトから遷移を削除します。 |
CAnimationController::ScheduleGroup | アニメーションをスケジュールします。 |
CAnimationController::SetRelatedWnd | アニメーション コントローラーとウィンドウの間のリレーションシップを確立します。 |
CAnimationController::UpdateAnimationManager | すべてのアニメーション変数の値を更新するようにアニメーション マネージャーに指示します。 |
保護メソッド
名前 | 説明 |
---|---|
CAnimationController::CleanUpGroup | 過負荷です。 グループをクリーンアップするヘルパー。 |
CAnimationController::OnAfterSchedule | 指定したグループのアニメーションがスケジュールされた直後にフレームワークによって呼び出されます。 |
プロテクト データ メンバー
名前 | 説明 |
---|---|
CAnimationController::gkeyframeStoryboardStart | ストーリーボードの開始を表すキーフレーム。 |
CAnimationController::m_bIsValid | アニメーション コントローラーが有効かどうかを指定します。 現在の OS が Windows アニメーション API をサポートしていない場合、このメンバーは FALSE に設定されます。 |
CAnimationController::m_lstAnimationGroups | このアニメーション コントローラーに属するアニメーション グループの一覧。 |
CAnimationController::m_pAnimationManager | Animation Manager COM オブジェクトへのポインターを格納します。 |
CAnimationController::m_pAnimationTimer | アニメーション タイマー COM オブジェクトへのポインターを格納します。 |
CAnimationController::m_pRelatedWnd | 関連する CWnd オブジェクトへのポインター。アニメーション マネージャーの状態が変更されたとき、または更新後のイベントが発生したときに自動的に再描画できます。 NULL にすることができます。 |
CAnimationController::m_pTransitionFactory | Transition Factory COM オブジェクトへのポインターを格納します。 |
CAnimationController::m_pTransitionLibrary | 遷移ライブラリ COM オブジェクトへのポインターを格納します。 |
解説
CAnimationController クラスは、アニメーションを管理するキー クラスです。 アプリケーションでアニメーション コントローラーのインスタンスを 1 つ以上作成し、必要に応じて、CAnimationController::SetRelatedWnd を使用してアニメーション コントローラーのインスタンスを CWnd オブジェクトに接続できます。 この接続は、アニメーション マネージャーの状態が変更されたか、アニメーション タイマーが更新されたときに、関連ウィンドウにWM_PAINTメッセージを自動的に送信するために必要です。 このリレーションを有効にしない場合は、アニメーションを手動で表示するウィンドウを再描画する必要があります。 このため、CAnimationController からクラスを派生させ、OnAnimationManagerStatusChanged や OnAnimationTimerPostUpdate をオーバーライドし、必要に応じて 1 つ以上のウィンドウを無効にすることができます。
継承階層
CAnimationController
要件
ヘッダー: afxanimationcontroller.h
CAnimationController::~CAnimationController
デストラクター。 アニメーション コントローラー オブジェクトが破棄されるときに呼び出されます。
virtual ~CAnimationController(void);
CAnimationController::AddAnimationObject
アニメーション コントローラーに属するグループにアニメーション オブジェクトを追加します。
CAnimationGroup* AddAnimationObject(CAnimationBaseObject* pObject);
パラメーター
pObject
アニメーション オブジェクトへのポインター。
戻り値
関数が成功した場合に pObject が追加された既存または新しいアニメーション グループへのポインター。別のアニメーション コントローラーに属するグループに pObject が既に追加されている場合は NULL。
解説
アニメーション コントローラーにアニメーション オブジェクトを追加するには、このメソッドを呼び出します。 オブジェクトは、オブジェクトの GroupID に従ってグループに追加されます (CAnimationBaseObject::SetID を参照)。 アニメーション コントローラーは、指定された GroupID で追加される最初のオブジェクトである場合、新しいグループを作成します。 アニメーション オブジェクトは、1 つのアニメーション コントローラーにのみ追加できます。 別のコントローラーにオブジェクトを追加する必要がある場合は、最初に RemoveAnimationObject を呼び出します。 既にグループに追加されているオブジェクトに対して新しい GroupID を使用して SetID を呼び出すと、そのオブジェクトは古いグループから削除され、指定された ID を持つ別のグループに追加されます。
CAnimationController::AddKeyframeToGroup
グループ化するキーフレームを追加します。
BOOL AddKeyframeToGroup(
UINT32 nGroupID,
CBaseKeyFrame* pKeyframe);
パラメーター
nGroupID
グループ ID を指定します。
pKeyframe
キーフレームへのポインター。
戻り値
関数が成功した場合は TRUE。それ以外の場合は FALSE。
解説
通常、このメソッドを呼び出す必要はありません。代わりに CAnimationController::CreateKeyframe を使用します。これにより、作成されたキーフレームが自動的に作成され、グループに追加されます。
CAnimationController::AnimateGroup
アニメーションを実行するグループを準備し、必要に応じてスケジュールします。
BOOL AnimateGroup(
UINT32 nGroupID,
BOOL bScheduleNow = TRUE);
パラメーター
nGroupID
GroupID を指定します。
bScheduleNow
アニメーションをすぐに実行するかどうかを指定します。
戻り値
アニメーションが正常にスケジュールされ、実行された場合は TRUE。
解説
このメソッドは、ストーリーボードの作成、アニメーション変数の追加、遷移の適用、キーフレームの設定を実際に行います。 bScheduleNow を FALSE に設定すると、スケジュールを遅延させる可能性があります。 この場合、指定したグループは、アニメーション用に設定されたストーリーボードを保持します。 その時点で、ストーリーボードとアニメーション変数のイベントを設定できます。 アニメーションを実際に実行する必要がある場合は、CAnimationController::ScheduleGroup を呼び出します。
CAnimationController::CAnimationController
アニメーション コントローラーを構築します。
CAnimationController(void);
CAnimationController::CleanUpGroup
アニメーションがスケジュールされたときにグループをクリーンアップするためにフレームワークによって呼び出されます。
void CleanUpGroup(UINT32 nGroupID);
void CleanUpGroup(CAnimationGroup* pGroup);
パラメーター
nGroupID
GroupID を指定します。
pGroup
クリーンアップするアニメーション グループへのポインター。
解説
このメソッドは、アニメーションがスケジュールされた後に関連しないため、指定したグループからすべての遷移とキーフレームを削除します。
CAnimationController::CreateKeyframe
遷移に依存するキーフレームを作成し、指定したグループに追加します。
CKeyFrame* CreateKeyframe(
UINT32 nGroupID,
CBaseTransition* pTransition);
CKeyFrame* CreateKeyframe(
UINT32 nGroupID,
CBaseKeyFrame* pKeyframe,
UI_ANIMATION_SECONDS offset = 0.0);
パラメーター
nGroupID
キーフレームを作成する対象グループの ID を指定します。
pTransition
遷移へのポインター。 この移行の完了後に、ストーリーボードにキーフレームが挿入されます。
pKeyframe
このキーフレームの基準キーフレームへのポインター。
オフセット
pKeyframe で指定した基準キーフレームからのオフセット (秒単位)。
戻り値
関数が正常に終了した場合は、新しく作成されたキーフレームへのポインター。
解説
返されたポインターを格納して、新しく作成されたキーフレームを他のキーフレームの基準にすることができます (2 番目のオーバーロードを参照)。 キーフレームで遷移を開始することもできます。CBaseTransition::SetKeyframes をご覧ください。 このようにして作成したキーフレームを削除する必要はありません。アニメーション グループによって自動的に削除されます。 キーフレームを他のキーフレームや遷移に基づいて作成する場合は注意し、循環参照が発生しないようにしてください。
CAnimationController::EnableAnimationManagerEvent
アニメーション マネージャーの状態が変更されたときに呼び出すハンドラーを設定または解放します。
virtual BOOL EnableAnimationManagerEvent(BOOL bEnable = TRUE);
パラメーター
bEnable
ハンドラーを設定するか解放するかを指定します。
戻り値
ハンドラーが正常に設定または解放された場合は TRUE。
解説
ハンドラーを設定 (有効) すると、アニメーション マネージャーの状態が変更されたときに、Windows アニメーションが OnAnimationManagerStatusChanged を呼び出します。
CAnimationController::EnableAnimationTimerEventHandler
タイミング イベントのハンドラーとタイミング更新のハンドラーを設定または解放します。
virtual BOOL EnableAnimationTimerEventHandler(
BOOL bEnable = TRUE,
UI_ANIMATION_IDLE_BEHAVIOR idleBehavior = UI_ANIMATION_IDLE_BEHAVIOR_DISABLE);
パラメーター
bEnable
ハンドラーを設定するか解放するかを指定します。
idleBehavior
タイマー更新ハンドラーのアイドル動作を指定します。
戻り値
ハンドラーが正常に設定または解放された場合は TRUE。このメソッドが最初にハンドラーを解放せずに 2 回目に呼び出された場合、または他のエラーが発生した場合は FALSE。
解説
ハンドラーが設定 (有効) されると、Windows アニメーション API は OnAnimationTimerPreUpdate、OnAnimationTimerPostUpdate、OnRenderingTooSlow メソッドを呼び出します。 Windows アニメーション API のストーリーボードの更新を許可するには、アニメーション タイマーを有効にする必要があります。 それ以外の場合は、すべてのアニメーション変数の値を更新するようにアニメーション マネージャーに指示するために、CAnimationController::UpdateAnimationManager を呼び出す必要があります。
CAnimationController::EnablePriorityComparisonHandler
優先度比較ハンドラーを設定または解放して、スケジュールされたストーリーボードをキャンセル、終了、トリミング、または圧縮できるかどうかを判断します。
virtual BOOL EnablePriorityComparisonHandler(DWORD dwHandlerType);
パラメーター
dwHandlerType
設定または解放するハンドラーを指定するUI_ANIMATION_PHT_フラグ (解説を参照) の組み合わせ。
戻り値
ハンドラーが正常に設定または解放された場合は TRUE。
解説
ハンドラーが設定 (有効) の場合、Windows アニメーションは dwHandlerType に応じて次の仮想メソッドを呼び出します。OnHasPriorityCancel、OnHasPriorityConclude、OnHasPriorityTrim、OnHasPriorityCompress。 dwHandler には、次のフラグを組み合わせて使用できます。UI_ANIMATION_PHT_NONE - すべてのハンドラーを解放UI_ANIMATION_PHT_CANCEL - 比較ハンドラーのUI_ANIMATION_PHT_CONCLUDEをキャンセルする - 比較ハンドラーのUI_ANIMATION_PHT_COMPRESSを終了する - 比較ハンドラーのUI_ANIMATION_PHT_COMPRESSを終了する - 比較ハンドラーのUI_ANIMATION_PHT_TRIMを圧縮する - 比較ハンドラーのUI_ANIMATION_PHT_CANCEL_REMOVEを削除する - 比較ハンドラーのUI_ANIMATION_PHT_CONCLUDE_REMOVEを削除する - 比較ハンドラー UI_ANIMATION_PHT_COMPRESS_REMOVEを終了する remove Compress 比較ハンドラー UI_ANIMATION_PHT_TRIM_REMOVE - Trim 比較ハンドラーの削除
CAnimationController::EnableStoryboardEventHandler
ストーリーボードの状態と更新イベントのハンドラーを設定または解放します。
virtual BOOL EnableStoryboardEventHandler(
UINT32 nGroupID,
BOOL bEnable = TRUE);
パラメーター
nGroupID
グループ ID を指定します。
bEnable
ハンドラーを設定するか解放するかを指定します。
戻り値
ハンドラーが正常に設定または解放された場合は TRUE。指定したアニメーション グループが見つかった場合、または指定したグループのアニメーションが開始されておらず、その内部ストーリーボードが NULL の場合は FALSE。
解説
ハンドラーが設定 (有効) されると、Windows アニメーション API は OnStoryboardStatusChanges および OnStoryboardUpdated 仮想メソッドを呼び出します。 指定したアニメーション グループに対して CAnimationController::Animate が呼び出された後にハンドラーを設定する必要があります。これは、カプセル化された IUIAnimationStoryboard オブジェクトが作成されるためです。
CAnimationController::FindAnimationGroup
アニメーション グループをそのグループ ID で検索します。
CAnimationGroup* FindAnimationGroup(UINT32 nGroupID);
CAnimationGroup* FindAnimationGroup(IUIAnimationStoryboard* pStoryboard);
パラメーター
nGroupID
GroupID を指定します。
pStoryboard
ストーリーボードへのポインター。
戻り値
指定した ID を持つグループが見つからない場合は、アニメーション グループへのポインターまたは NULL。
解説
実行時にアニメーション グループを検索するには、このメソッドを使用します。 特定の GroupID を持つ最初のアニメーション オブジェクトをアニメーション コントローラーに追加すると、グループが作成され、アニメーション グループの内部リストに追加されます。
CAnimationController::FindAnimationObject
指定したアニメーション変数を含むアニメーション オブジェクトを検索します。
BOOL FindAnimationObject(
IUIAnimationVariable* pVariable,
CAnimationBaseObject** ppObject,
CAnimationGroup** ppGroup);
パラメーター
pVariable
アニメーション変数へのポインター。
ppObject
出力。 アニメーション オブジェクトまたは NULL へのポインターを格納します。
ppGroup
出力。 アニメーション オブジェクト (NULL) を保持するアニメーション グループへのポインターを格納します。
戻り値
オブジェクトが見つかった場合は TRUE。それ以外の場合は FALSE。
解説
受信アニメーション変数からアニメーション オブジェクトを検索する必要がある場合に、イベント ハンドラーから呼び出されます。
CAnimationController::gkeyframeStoryboardStart
ストーリーボードの開始を表すキーフレーム。
static CBaseKeyFrame gkeyframeStoryboardStart;
CAnimationController::GetKeyframeStoryboardStart
ストーリーボードの開始を識別するキーフレームを返します。
static CBaseKeyFrame* GetKeyframeStoryboardStart();
戻り値
ストーリーボードの開始を識別するベース キーフレームへのポインター。
解説
このキーフレームを取得して、ストーリーボードが開始された瞬間に他のキーフレームや遷移をベースにします。
CAnimationController::GetUIAnimationManager
カプセル化された IUIAnimationManager オブジェクトへのアクセスを提供します。
IUIAnimationManager* GetUIAnimationManager();
戻り値
アニメーション マネージャーの作成に失敗した場合は、IUIAnimationManager インターフェイスまたは NULL へのポインター。
解説
現在の OS で Windows アニメーション API がサポートされていない場合、このメソッドは NULL を返し、その後の CAnimationController::IsValid に対するすべての呼び出しは FALSE を返します。 アニメーション コントローラーでラップされていないインターフェイス メソッドを呼び出すには、IUIAnimationManager にアクセスする必要がある場合があります。
CAnimationController::GetUIAnimationTimer
カプセル化された IUIAnimationTimer オブジェクトへのアクセスを提供します。
IUIAnimationTimer* GetUIAnimationTimer();
戻り値
アニメーション タイマーの作成に失敗した場合は、IUIAnimationTimer インターフェイスまたは NULL へのポインター。
解説
現在の OS で Windows アニメーション API がサポートされていない場合、このメソッドは NULL を返し、その後の CAnimationController::IsValid に対するすべての呼び出しは FALSE を返します。
CAnimationController::GetUITransitionFactory
遷移ライブラリの作成に失敗した場合は、IUIAnimationTransitionFactory インターフェイスまたは NULL へのポインター。
IUIAnimationTransitionFactory* GetUITransitionFactory();
戻り値
遷移ファクトリの作成に失敗した場合は、IUIAnimationTransitionFactory または NULL へのポインター。
解説
現在の OS で Windows アニメーション API がサポートされていない場合、このメソッドは NULL を返し、その後の CAnimationController::IsValid に対するすべての呼び出しは FALSE を返します。
CAnimationController::GetUITransitionLibrary
カプセル化された IUIAnimationTransitionLibrary オブジェクトへのアクセスを提供します。
IUIAnimationTransitionLibrary* GetUITransitionLibrary();
戻り値
遷移ライブラリの作成に失敗した場合は、IUIAnimationTransitionLibrary インターフェイスまたは NULL へのポインター。
解説
現在の OS で Windows アニメーション API がサポートされていない場合、このメソッドは NULL を返し、その後の CAnimationController::IsValid に対するすべての呼び出しは FALSE を返します。
CAnimationController::IsAnimationInProgress
少なくとも 1 つのグループがアニメーションを再生しているかどうかを示します。
virtual BOOL IsAnimationInProgress();
戻り値
このアニメーション コントローラーのアニメーションが進行中の場合は TRUE。それ以外の場合は FALSE。
解説
アニメーション マネージャーの状態を確認し、状態がUI_ANIMATION_MANAGER_BUSY場合は TRUE を返します。
CAnimationController::IsValid
アニメーション コントローラーが有効かどうかを示します。
BOOL IsValid() const;
戻り値
アニメーション コントローラーが有効な場合は TRUE。それ以外の場合は FALSE。
解説
このメソッドは、現在の OS で Windows アニメーション API がサポートされておらず、アニメーション マネージャーの作成が登録されていないために失敗した場合にのみ FALSE を返します。 このフラグを設定するには、COM ライブラリの初期化後に GetUIAnimationManager を少なくとも 1 回呼び出す必要があります。
CAnimationController::m_bIsValid
アニメーション コントローラーが有効かどうかを指定します。 現在の OS が Windows アニメーション API をサポートしていない場合、このメンバーは FALSE に設定されます。
BOOL m_bIsValid;
CAnimationController::m_lstAnimationGroups
このアニメーション コントローラーに属するアニメーション グループの一覧。
CList<CAnimationGroup*, CAnimationGroup*> m_lstAnimationGroups;
CAnimationController::m_pAnimationManager
Animation Manager COM オブジェクトへのポインターを格納します。
ATL::CComPtr<IUIAnimationManager> m_pAnimationManager;
CAnimationController::m_pAnimationTimer
アニメーション タイマー COM オブジェクトへのポインターを格納します。
ATL::CComPtr<IUIAnimationTimer> m_pAnimationTimer;
CAnimationController::m_pRelatedWnd
関連する CWnd オブジェクトへのポインター。アニメーション マネージャーの状態が変更されたとき、または更新後のイベントが発生したときに自動的に再描画できます。 NULL にすることができます。
CWnd* m_pRelatedWnd;
CAnimationController::m_pTransitionFactory
Transition Factory COM オブジェクトへのポインターを格納します。
ATL::CComPtr<IUIAnimationTransitionFactory> m_pTransitionFactory;
CAnimationController::m_pTransitionLibrary
遷移ライブラリ COM オブジェクトへのポインターを格納します。
ATL::CComPtr<IUIAnimationTransitionLibrary> m_pTransitionLibrary;
CAnimationController::OnAfterSchedule
指定したグループのアニメーションがスケジュールされた直後にフレームワークによって呼び出されます。
virtual void OnAfterSchedule(CAnimationGroup* pGroup);
パラメーター
pGroup
スケジュールされているアニメーション グループへのポインター。
解説
既定の実装では、指定したグループからキーフレームを削除し、指定したグループに属するアニメーション変数から遷移します。 派生クラスでオーバーライドして、アニメーションのスケジュール時に追加のアクションを実行できます。
CAnimationController::OnAnimationIntegerValueChanged
アニメーション変数の整数値が変更されたときにフレームワークによって呼び出されます。
virtual void OnAnimationIntegerValueChanged(
CAnimationGroup* pGroup,
CAnimationBaseObject* pObject,
IUIAnimationVariable* variable,
INT32 newValue,
INT32 prevValue);
パラメーター
pGroup
値が変更されたアニメーション オブジェクトを保持するアニメーション グループへのポインター。
pObject
値が変更されたアニメーション変数を含むアニメーション オブジェクトへのポインター。
variable
アニメーション変数へのポインター。
newValue
新しい値を指定します。
prevValue
前の値を指定します。
解説
このメソッドは、特定のアニメーション変数またはアニメーション オブジェクトに対して EnableIntegerValueChangedEvent を呼び出してアニメーション変数イベントを有効にした場合に呼び出されます。 派生クラスでオーバーライドして、アプリケーション固有のアクションを実行できます。
CAnimationController::OnAnimationManagerStatusChanged
アニメーション マネージャーから StatusChanged イベントに応答してフレームワークによって呼び出されます。
virtual void OnAnimationManagerStatusChanged(
UI_ANIMATION_MANAGER_STATUS newStatus,
UI_ANIMATION_MANAGER_STATUS previousStatus);
パラメーター
newStatus
新しいアニメーション マネージャーの状態。
previousStatus
以前のアニメーション マネージャーの状態。
解説
このメソッドは、EnableAnimationManagerEvent でアニメーション マネージャー イベントを有効にした場合に呼び出されます。 派生クラスでオーバーライドして、アプリケーション固有のアクションを実行できます。 既定の実装では、関連ウィンドウが SetRelatedWnd で設定されている場合に更新されます。
CAnimationController::OnAnimationTimerPostUpdate
アニメーションの更新が完了した後、フレームワークによって呼び出されます。
virtual void OnAnimationTimerPostUpdate();
解説
このメソッドは、EnableAnimationTimerEventHandler を使用してタイマー イベント ハンドラーを有効にした場合に呼び出されます。 派生クラスでオーバーライドして、アプリケーション固有のアクションを実行できます。
CAnimationController::OnAnimationTimerPreUpdate
アニメーションの更新が開始される前にフレームワークによって呼び出されます。
virtual void OnAnimationTimerPreUpdate();
解説
このメソッドは、EnableAnimationTimerEventHandler を使用してタイマー イベント ハンドラーを有効にした場合に呼び出されます。 派生クラスでオーバーライドして、アプリケーション固有のアクションを実行できます。
CAnimationController::OnAnimationTimerRenderingTooSlow
アニメーションのレンダリング フレーム レートが望ましい最小フレーム レートを下回った場合にフレームワークによって呼び出されます。
virtual void OnAnimationTimerRenderingTooSlow(UINT32 fps);
パラメーター
fps
現在のフレーム レート (1 秒あたりのフレーム数)。
解説
このメソッドは、EnableAnimationTimerEventHandler を使用してタイマー イベント ハンドラーを有効にした場合に呼び出されます。 派生クラスでオーバーライドして、アプリケーション固有のアクションを実行できます。 望ましい最小フレーム レートは、IUIAnimationTimer::SetFrameRateThreshold を呼び出すことによって指定されます。
CAnimationController::OnAnimationValueChanged
アニメーション変数の値が変更されたときにフレームワークによって呼び出されます。
virtual void OnAnimationValueChanged(
CAnimationGroup* pGroup,
CAnimationBaseObject* pObject,
IUIAnimationVariable* variable,
DOUBLE newValue,
DOUBLE prevValue);
パラメーター
pGroup
値が変更されたアニメーション オブジェクトを保持するアニメーション グループへのポインター。
pObject
値が変更されたアニメーション変数を含むアニメーション オブジェクトへのポインター。
variable
アニメーション変数へのポインター。
newValue
新しい値を指定します。
prevValue
前の値を指定します。
解説
このメソッドは、特定のアニメーション変数またはアニメーション オブジェクトに対して EnableValueChangedEvent を呼び出してアニメーション変数イベントを有効にした場合に呼び出されます。 派生クラスでオーバーライドして、アプリケーション固有のアクションを実行できます。
CAnimationController::OnBeforeAnimationStart
アニメーションがスケジュールされる直前にフレームワークによって呼び出されます。
virtual void OnBeforeAnimationStart(CAnimationGroup* pGroup);
パラメーター
pGroup
アニメーションが開始されるアニメーション グループへのポインター。
解説
この呼び出しは関連する CWnd にルーティングされ、派生クラスでオーバーライドして、指定したグループのアニメーションが開始される前に追加のアクションを実行できます。
CAnimationController::OnHasPriorityCancel
スケジュールの競合を解決するために、フレームワークによって呼び出されます。
virtual BOOL OnHasPriorityCancel(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
パラメーター
pGroupScheduled
現在スケジュールされているストーリーボードを所有しているグループ。
pGroupNew
pGroupScheduled が所有するスケジュール済みのストーリーボードとスケジュールが競合している新しいストーリーボードを所有しているグループ。
priorityEffect
pGroupScheduled の優先度がより高い場合に予想される pGroupNew への影響。
戻り値
pGroupNew が所有するストーリーボードの優先度が高い場合は TRUE を返します。 pGroupScheduled が所有するストーリーボードの優先度が高い場合は FALSE を返します。
解説
このメソッドは、CAnimationController::EnablePriorityComparisonHandler を使用して優先度比較イベントを有効にし、UI_ANIMATION_PHT_CANCEL を指定した場合に呼び出されます。 派生クラスでオーバーライドして、アプリケーション固有のアクションを実行できます。 Conflict Management の詳細については、Windows アニメーション API のドキュメントを参照してください。
CAnimationController::OnHasPriorityCompress
スケジュールの競合を解決するために、フレームワークによって呼び出されます。
virtual BOOL OnHasPriorityCompress(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
パラメーター
pGroupScheduled
現在スケジュールされているストーリーボードを所有しているグループ。
pGroupNew
pGroupScheduled が所有するスケジュール済みのストーリーボードとスケジュールが競合している新しいストーリーボードを所有しているグループ。
priorityEffect
pGroupScheduled の優先度がより高い場合に予想される pGroupNew への影響。
戻り値
pGroupNew が所有するストーリーボードの優先度が高い場合は TRUE を返します。 pGroupScheduled が所有するストーリーボードの優先度が高い場合は FALSE を返します。
解説
このメソッドは、CAnimationController::EnablePriorityComparisonHandler を使用して優先度比較イベントを有効にし、UI_ANIMATION_PHT_COMPRESS を指定した場合に呼び出されます。 派生クラスでオーバーライドして、アプリケーション固有のアクションを実行できます。 Conflict Management の詳細については、Windows アニメーション API のドキュメントを参照してください。
CAnimationController::OnHasPriorityConclude
スケジュールの競合を解決するために、フレームワークによって呼び出されます。
virtual BOOL OnHasPriorityConclude(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
パラメーター
pGroupScheduled
現在スケジュールされているストーリーボードを所有しているグループ。
pGroupNew
pGroupScheduled が所有するスケジュール済みのストーリーボードとスケジュールが競合している新しいストーリーボードを所有しているグループ。
priorityEffect
pGroupScheduled の優先度がより高い場合に予想される pGroupNew への影響。
戻り値
pGroupNew が所有するストーリーボードの優先度が高い場合は TRUE を返します。 pGroupScheduled が所有するストーリーボードの優先度が高い場合は FALSE を返します。
解説
このメソッドは、CAnimationController::EnablePriorityComparisonHandler を使用して優先度比較イベントを有効にし、UI_ANIMATION_PHT_CONCLUDE を指定した場合に呼び出されます。 派生クラスでオーバーライドして、アプリケーション固有のアクションを実行できます。 Conflict Management の詳細については、Windows アニメーション API のドキュメントを参照してください。
CAnimationController::OnHasPriorityTrim
スケジュールの競合を解決するために、フレームワークによって呼び出されます。
virtual BOOL OnHasPriorityTrim(
CAnimationGroup* pGroupScheduled,
CAnimationGroup* pGroupNew,
UI_ANIMATION_PRIORITY_EFFECT priorityEffect);
パラメーター
pGroupScheduled
現在スケジュールされているストーリーボードを所有しているグループ。
pGroupNew
pGroupScheduled が所有するスケジュール済みのストーリーボードとスケジュールが競合している新しいストーリーボードを所有しているグループ。
priorityEffect
pGroupScheduled の優先度がより高い場合に予想される pGroupNew への影響。
戻り値
pGroupNew が所有するストーリーボードの優先度が高い場合は TRUE を返します。 pGroupScheduled が所有するストーリーボードの優先度が高い場合は FALSE を返します。
解説
このメソッドは、CAnimationController::EnablePriorityComparisonHandler を使用して優先度比較イベントを有効にし、UI_ANIMATION_PHT_TRIM を指定した場合に呼び出されます。 派生クラスでオーバーライドして、アプリケーション固有のアクションを実行できます。 Conflict Management の詳細については、Windows アニメーション API のドキュメントを参照してください。
CAnimationController::OnStoryboardStatusChanged
ストーリーボードの状態が変更されたときにフレームワークによって呼び出されます。
virtual void OnStoryboardStatusChanged(
CAnimationGroup* pGroup,
UI_ANIMATION_STORYBOARD_STATUS newStatus,
UI_ANIMATION_STORYBOARD_STATUS previousStatus);
パラメーター
pGroup
状態が変更されたストーリーボードを所有するアニメーション グループへのポインター。
newStatus
新しい状態を指定します。
previousStatus
前の状態を指定します。
解説
このメソッドは、CAnimationController::EnableStoryboardEventHandler を使用してストーリーボード イベントを有効にした場合に呼び出されます。 派生クラスでオーバーライドして、アプリケーション固有のアクションを実行できます。
CAnimationController::OnStoryboardUpdated
ストーリーボードが更新されたときにフレームワークによって呼び出されます。
virtual void OnStoryboardUpdated(CAnimationGroup* pGroup);
パラメーター
pGroup
ストーリーボードを所有するグループへのポインター。
解説
このメソッドは、CAnimationController::EnableStoryboardEventHandler を使用してストーリーボード イベントを有効にした場合に呼び出されます。 派生クラスでオーバーライドして、アプリケーション固有のアクションを実行できます。
CAnimationController::RemoveAllAnimationGroups
アニメーション コントローラーからすべてのアニメーション グループを削除します。
void RemoveAllAnimationGroups();
解説
すべてのグループが削除されます。アプリケーション レベルで格納されている場合は、そのポインターを無効にする必要があります。 削除されるグループの CAnimationGroup::m_bAutodestroyAnimationObjects が TRUE の場合、そのグループに属するすべてのアニメーション オブジェクトが削除されます。それ以外の場合、親アニメーション コントローラーへの参照は NULL に設定され、別のコントローラーに追加できます。
CAnimationController::RemoveAnimationGroup
指定した ID を持つアニメーション グループをアニメーション コントローラーから削除します。
void RemoveAnimationGroup(UINT32 nGroupID);
パラメーター
nGroupID
アニメーション グループ ID を指定します。
解説
このメソッドは、グループの内部リストからアニメーション グループを削除して削除するため、そのアニメーション グループへのポインターを格納した場合は、無効にする必要があります。 CAnimationGroup::m_bAutodestroyAnimationObjects が TRUE の場合、そのグループに属するすべてのアニメーション オブジェクトが削除されます。それ以外の場合、親アニメーション コントローラーへの参照は NULL に設定され、別のコントローラーに追加できます。
CAnimationController::RemoveAnimationObject
アニメーション コントローラーからアニメーション オブジェクトを削除します。
void RemoveAnimationObject(
CAnimationBaseObject* pObject,
BOOL bNoDelete = FALSE);
パラメーター
pObject
アニメーション オブジェクトへのポインター。
bNoDelete
このパラメーターが TRUE の場合、オブジェクトは削除時に削除されません。
解説
アニメーション コントローラーとアニメーション グループからアニメーション オブジェクトを削除します。 特定のオブジェクトをアニメーション化しない場合、またはオブジェクトを別のアニメーション コントローラーに移動する必要がある場合は、この関数を呼び出します。 最後のケースでは、bNoDelete は TRUE である必要があります。
CAnimationController::RemoveTransitions
指定したグループに属するアニメーション オブジェクトから遷移を削除します。
void RemoveTransitions(UINT32 nGroupID);
パラメーター
nGroupID
グループ ID を指定します。
解説
グループはアニメーション オブジェクトをループし、アニメーション オブジェクトごとに ClearTransitions(FALSE) を呼び出します。 このメソッドは、アニメーションがスケジュールされた後にフレームワークによって呼び出されます。
CAnimationController::ScheduleGroup
アニメーションをスケジュールします。
BOOL ScheduleGroup(
UINT32 nGroupID,
UI_ANIMATION_SECONDS time = 0.0);
パラメーター
nGroupID
スケジュールするアニメーション グループ ID を指定します。
time
スケジュールする時間を指定します。
戻り値
アニメーションが正常にスケジュールされた場合は TRUE。 ストーリーボードが作成されていない場合、または他のエラーが発生した場合は FALSE。
解説
パラメーター bScheduleNow を FALSE の前の ScheduleGroup に設定して AnimateGroup を呼び出す必要があります。 IUIAnimationTimer::GetTime から取得する目的のアニメーション時間を指定できます。 time パラメーターが 0.0 の場合、アニメーションは現在の時刻にスケジュールされます。
CAnimationController::SetRelatedWnd
アニメーション コントローラーとウィンドウの間のリレーションシップを確立します。
void SetRelatedWnd(CWnd* pWnd);
パラメーター
pWnd
設定するウィンドウ オブジェクトへのポインター。
解説
関連する CWnd オブジェクトが設定されている場合、アニメーション マネージャーの状態が変更されたときや、更新後のタイマー イベントが発生したときに、アニメーション コントローラーで自動的に更新 (WM_PAINT メッセージを送信) できます。
CAnimationController::UpdateAnimationManager
すべてのアニメーション変数の値を更新するようにアニメーション マネージャーに指示します。
virtual void UpdateAnimationManager();
解説
このメソッドを呼び出すと、アニメーション マネージャーが現在の時刻に進み、必要に応じてストーリーボードの状態が変更され、アニメーション変数が適切な補間値に更新されます。 内部的には、このメソッドは IUIAnimationTimer::GetTime(timeNow) と IUIAnimationManager::Update(timeNow) を呼び出します。 この動作をカスタマイズするには、派生クラスでこのメソッドをオーバーライドします。