Expression Blend 动画概念

学习Silverlight 动画之前,首先需要明确一下三点核心概念:
1. Silverlight动画是基于时间线的; 开发人员可以设置初始状态,结束状态和动画时间段,Silverlight
会自动计算生成动画效果。
2. Silverlight动画是对象属性的修改过程; 例如,一个按钮动画,用户点击后,按钮会自动增大,其
动画原理,就是对按钮的宽度和高度在一定时间段中进行改变置,即生成动画效果。
3. Silverlight动画中,不同的数据类型,需要使用不同的动画类; 这和编程中的类型匹配很相似,假
如要在动画中实现修改控件宽度或者高度,则需要使用DoubleAnimation 类。动画实现控件背景色,则
需要使用ColorAnimation 类

在以上三点核心概念下,我们将列举一些基础概念,对其进行解释,
首先要明白Silverlight 动画类型,在Silverlight 的动画设计中,动画类型被分为两类,分别是:
From/To/By 动画和关键帧动画。还有一些专业开发人士称这两个类型为线性插值动画(Linear
Interpolation)和关键帧动画(Key-frame Animation)。
1. From/To/By 动画,也称为线性插值动画(Linear Interpolation),是 Silverlight 类型中最简单
的一种动画。开发人员只需要设置动画开始值(From),动画终止值(To)和动画相对改变值(By),即
可实现Silverlight 动画效果。从字面意思可以理解From,To 和By,From 是设置动画在时间线中的开
始位置,To 是设置动画在时间线中的结束位置,而By 和To 类似,但是比To 更灵活一些,设置By,不
用关心具体属性数值改变,也不用关心动画具体经历的时长。该动画类型,只是三种动画数据类型类,分
别是:DoubleAnimation,ColorAnimation 和PointAnimation。这三种数据类型类,分别用于Double
数据类型,Color 数据类型和Point 数据类型。其中DoubleAnimation 类是最为常用的一种。例如,修
改对象的高度和宽度,就是不错的例子。我们经常会在项目代码中看到:
1
这是一个指定对象的属性值在5秒内从20到100改变的动画,也是最简单的动画语句。这里我们忽略了目
标对象属性,后文将有详细代码,这里仅做演示。
2. 关键帧动画(Key-frame Animation),相比线性插值动画(Linear Interpolation)要更加灵活
和强大。在关键帧动画中,可以不用指定具体的开始点和结束点,仅需要设置关键帧和相关动画控制方法,
Silverlight 将自动生成动画效果。这个动画类型,有两个重要概念,关键帧和动画控制方法。
关键帧可以理解为对象属性值,每设置一个关键帧,也就是修改一次对象属性值。
动画控制方法,也可以理解为动画过渡效果,是指从某一个关键帧开始过渡到下一个关键帧的动画效果。
默认微软提供三种动画控制方法:线性(Linear),离散(Discrete)和样条(Spline)。为了能够让
读者快速入门动画概念,这里我暂时不细述以上三种动画控制方法,将在后文使用单独篇幅进行描述。
关键帧动画, 也有相关动画数据类型类, 分别是DoubleAnimationUsingKeyFrames ,
ColorAnimationUsingKeyFrames , PointAnimationUsingKeyFrames 和
ObjectAnimationUsingKeyFrames 。其中前三个数据类型类用法和DoubleAnimation ,
ColorAnimation 和PointAnimation 相同,而ObjectAnimationUsingKeyFrames 是关键帧动画特有
的数据类型类,可以替代任意数据类型,例如,假如想实现一个控件的可见性动画效果,我们需要控制该
控件的Visibility 属性, 而该属性不属于Double , Color 和Point 任一类型, 这里便可以使用
ObjectAnimationUsingKeyFrames。在后文,会有实例进行说明。

StoryBoard是管理时间线的类,开发人员可以使用该类管理和控制多个动画进程。例如,控制动画的播
放,暂停,停止或者改变动画位置等功能,不仅如此,通过StoryBoard 还可以为动画指定控件和控件属
性。在Blend 中,微软内置了一个StoryBoard 时间线编辑器,设计人员和开发人员可以脱离代码使用视
图方式方便的设计动画效果。本系列着重介绍Blend 应用,所以,后文将详细介绍StoryBoard 在Blend
中的设计方法。

相信不少新手看了以上的基础概念,还是比较困惑,下面看看微软提供的Silverlight 动画简单类图:
从上图可以看出, 线性插值动画, 关键帧动画和StoryBoard 都是继承自
System.Windows.Media.Animation.Timeline. 也就是说,以上三个类都继承了Timeline 的相关属
性,下面我们分别看一下Timeline 基类属性。
1. AutoReverse属性,类型为 Bool, 该属性如果为 True,指定动画将正序运行后,反序运行一次。
例如,有一按钮动画效果,改变宽度从20到100后,动画将从100再回到20.
1
2

你可能感兴趣的:(Expression Blend 动画概念)