动画 - 概述

在 Silverlight 中,动画可以通过添加移动和交互性来增强图形的创建效果。通过对背景色进行动画处理或应用动画 Transform,您可以创造出生动的屏幕过渡效果或提供有帮助的视觉提示。

动画是快速播放一系列图像(其中每个图像与下一个图像略微不同)给人造成的一种幻觉。大脑感觉这组图像是一个变化的场景。在电影中,摄像机每秒钟拍摄许多照片(帧),便可使人形成这种幻觉。用投影仪播放这些帧时,观众便可以看电影了。在 Silverlight 中,通过对对象的个别属性应用动画,可以对对象进行动画处理。例如,若要使 UIElement 增大,需对其 WidthHeight 属性进行动画处理。若要使 UIElement 逐渐从视野中消失,可以对其 Opacity 属性进行动画处理。可以对 Silverlight 中许多对象的属性进行动画处理。

备注:在 Silverlight 中,您只能对值类型为 DoubleColorPoint 的属性执行简单的动画处理。此外,还可以使用 ObjectAnimationUsingKeyFrames 对其他类型的属性进行动画处理,但是这需要使用离散内插(从一个值跳到另一个值),而多数人认为这不是真正的动画。

<StackPanel>
<StackPanel.Resources>
<!-- Animates the rectangle's opacity. -->
<Storyboard x:Name="myStoryboard">
<DoubleAnimation
Storyboard.TargetName
="MyAnimatedRectangle"
Storyboard.TargetProperty
="Opacity"
From
="1.0" To="0.0" Duration="0:0:1"
AutoReverse
="True" RepeatBehavior="Forever" />
</Storyboard>
</StackPanel.Resources>

<Rectangle MouseLeftButtonDown="Mouse_Clicked"
x:Name
="MyAnimatedRectangle"
Width
="100" Height="100" Fill="Blue" />

</StackPanel>

// When the user clicks the Rectangle, the animation
// begins.
private void Mouse_Clicked(object sender, MouseEventArgs e)
{
myStoryboard.Begin();
}

注:1. 创建 Storyboard 对象并使用 TargetNameTargetProperty 附加属性指定要进行动画处理的对象和属性。

常用动画类型以及与这些类型一起使用的一些属性:

动画是时间线

所有动画均继承自 Timeline 对象,因此所有动画都是专用类型的时间线。Timeline 定义时间段。您可以指定时间线的以下"计时行为":其 Duration 和重复次数,甚至可以为时间线指定时间走得多快。

因为动画是 Timeline,所以它还表示一个时间段。在动画的指定时间段(即 Duration)内运行动画时,动画会计算输出值。在运行或"播放"动画时,动画将更新与其关联的属性。

DurationAutoReverseRepeatBehavior 是三个常用的计时属性。

在 Silverlight 中,您只能对值类型为 DoubleColorPoint 的属性执行简单的动画处理。此外,还可以使用 ObjectAnimationUsingKeyFrames 对其他类型的属性进行动画处理,但是这需要使用离散内插(从一个值跳到另一个值),而多数人认为这不是真正的动画。

posted @ 2011-03-16 17:34  南宫元耘  阅读(250)  评论(0编辑  收藏  举报