アニメーション変数の値を読み取る
アプリケーションが描画されるたびに、アニメーション化する視覚特性を表すアニメーション変数の現在の値を読み取る必要があります。
概要
フレームを描画するときに、アプリケーションは IUIAnimationVariable::GetValue メソッドまたは IUIAnimationVariable::GetIntegerValue メソッドを使用して、フレーム内のビジュアルに影響を与えるアニメーション変数の値を要求できます。 アニメーション変数を値の範囲 (SetLowerBound と SetUpperBound) にクリップし、指定した丸めスキーム (SetRoundingMode) を使用して値を整数に丸めることができます。
フレームごとにすべての変数の値を読み取る代わりに、 アプリケーションでは 、IUIAnimationVariable::SetVariableChangeHandler メソッドまたは IUIAnimationVariable::SetVariableIntegerChangeHandler メソッドを使用して、1 つ以上の変数変更ハンドラーを登録し、通知を受信する場合にのみ通知を受け取ることができます 変数の値 (IUIAnimationVariableChangeHandler::OnValueChanged) または丸められた値 (IUIAnimationVariableIntegerChangeHandler::OnIntegerValueChanged) に変更があります). 変数変更ハンドラーに渡される変数を識別するために、アプリケーションは IUIAnimationVariable::SetTag メソッドを使用して変数にタグを適用できます。 これらは、アプリケーションによって解釈されるオブジェクト (IUnknown*) の整数ペアです。
コード例
次のコード例は、Windows アニメーションサンプル のグリッド レイアウトの Thumbnail.cpp から取得したものです。CMainWindow::Render メソッドを参照してください。 GetValue メソッドを使用して、値を浮動小数点値として読み取ります。
// Get the x-coordinate and y-coordinate animation variable values
DOUBLE x=0;
hr = m_pAnimationVariableX->GetValue(&x);
if (SUCCEEDED(hr))
{
DOUBLE y=0;
hr = m_pAnimationVariableY->GetValue(&y);
if (SUCCEEDED(hr))
{
// Draw the object
...
}
}
次のコード例は、Windows アニメーションサンプル のタイマー駆動型アニメーションの MainWindow.cpp から取得したものです。CMainWindow::D rawBackground メソッドを参照してください。 GetIntegerValue メソッドを使用して、値を整数値として読み取ります。
// Get the RGB animation variable values
INT32 red;
HRESULT hr = m_pAnimationVariableRed->GetIntegerValue(
&red
);
if (SUCCEEDED(hr))
{
INT32 green;
hr = m_pAnimationVariableGreen->GetIntegerValue(
&green
);
if (SUCCEEDED(hr))
{
INT32 blue;
hr = m_pAnimationVariableBlue->GetIntegerValue(
&blue
);
if (SUCCEEDED(hr))
{
// Set the RGB of the background brush to the new animated value
...
// Paint the background
...
}
}
...
}
前の手順
この手順を開始する前に、 アニメーション マネージャーの更新とフレームの描画の手順を完了している必要があります。
次の手順
この手順を完了したら、次の手順は ストーリーボードの作成と画面切り替えの追加です。
関連トピック