创建情节提要并添加切换效果
若要创建动画,应用程序必须构造情节提要。
概述
构造情节提要的一般步骤如下:
- 创建情节提要
- 创建一个或多个转换
- 将过渡添加到情节提要,并指定它们进行动画处理的变量
可以使用动画管理器创建空情节提要。 应用程序必须使用过渡填充每个情节提要。 每个转换指定单个动画变量在给定时间间隔内的变化方式。 可以使用 Windows 动画中包含的过渡库组件创建过渡。 或者,应用程序可以创建自己的自定义转换或使用来自第三方的转换库。 当应用程序将过渡添加到情节提要时,它将指定切换将动画处理的动画变量。
情节提要可能包含一个或多个动画变量的切换效果。 更复杂的情节提要可以使用关键帧来同步切换的开始或结束,或者指定情节提要中应重复 (固定次数或无限期) 的部分。
示例代码
以下示例代码取自 Windows 动画示例 计时器驱动动画中的 MainWindow.cpp;请参阅 CMainWindow::ChangeColor 方法。 此示例使用 IUIAnimationManager::CreateStoryboard 方法 (步骤 1) 创建情节提要, 使用 IUIAnimationTransitionLibrary::CreateAccelerateDecelerateTransition 方法创建步骤 2) (转换,并使用 IUIAnimationStoryboard::AddTransition 方法将转换 (添加到步骤 3) 情节提要。
const UI_ANIMATION_SECONDS DURATION = 0.5;
const DOUBLE ACCELERATION_RATIO = 0.5;
const DOUBLE DECELERATION_RATIO = 0.5;
// Create a storyboard
IUIAnimationStoryboard *pStoryboard = NULL;
HRESULT hr = m_pAnimationManager->CreateStoryboard(
&pStoryboard
);
if (SUCCEEDED(hr))
{
// Create transitions for the RGB animation variables
IUIAnimationTransition *pTransitionRed;
hr = m_pTransitionLibrary->CreateAccelerateDecelerateTransition(
DURATION,
red,
ACCELERATION_RATIO,
DECELERATION_RATIO,
&pTransitionRed
);
if (SUCCEEDED(hr))
{
IUIAnimationTransition *pTransitionGreen;
hr = m_pTransitionLibrary->CreateAccelerateDecelerateTransition(
DURATION,
green,
ACCELERATION_RATIO,
DECELERATION_RATIO,
&pTransitionGreen
);
if (SUCCEEDED(hr))
{
IUIAnimationTransition *pTransitionBlue;
hr = m_pTransitionLibrary->CreateAccelerateDecelerateTransition(
DURATION,
blue,
ACCELERATION_RATIO,
DECELERATION_RATIO,
&pTransitionBlue
);
if (SUCCEEDED(hr))
{
// Add transitions to the storyboard
hr = pStoryboard->AddTransition(
m_pAnimationVariableRed,
pTransitionRed
);
if (SUCCEEDED(hr))
{
hr = pStoryboard->AddTransition(
m_pAnimationVariableGreen,
pTransitionGreen
);
if (SUCCEEDED(hr))
{
hr = pStoryboard->AddTransition(
m_pAnimationVariableBlue,
pTransitionBlue
);
if (SUCCEEDED(hr))
{
// Get the current time and schedule the storyboard for play
...
}
上一步
在开始此步骤之前,应已完成此步骤: 读取动画变量值。
下一步
完成此步骤后,下一步是: 计划情节提要。
相关主题