Animation是AjaxControlToolkit中提供的经典模型之一,这个模型下的各种组件经过组合可以出现非 常丰富的动画效果。Animation模型也是Microsoft AJAX Library客户端Component模型的经典案例,掌握 了Animation几乎也相当于掌握了Component模型——甚至包括了Component模型的派生:Behavior模型和 Control模型。在我看来,除了在“概念”上的区别之外,从技术角度分析它们几乎都是同样的东西。
另外,Animation源代码中的注释甚至超过了代码本身的数量,因此它也是非常优秀的学习资料。
Animation模型的基础是客户端AjaxControlToolkit.Animation.Animation类。为了编程方便, AjaxControlToolkit为AjaxControlToolkit.Animation命名空间取了一个别名“$AA”,因此我们在使用 Animation类时可以通过“$AA.Animation”来访问它。
下图为Animation的UML表示:
Animation类继承了Sys.Component类,因此它也含有Sys.Component的所有成员和特性,例如 raisePropertyChanged方法和propertyChanged事件。它的主要成员如下:
构造函数:
Animation(target, duration, fps):用于构造一个Animation对象,初始化一些值,不多说了。
属性:
target:RW属性,DOM元素类型。表示Animation作用的DOM元素,例如ColorAnimation中改变颜色的那 个对象。
duration:RW属性,Number类型,默认值为1。表示这个Animation从头至尾“播放”一遍所需的时间 ,单位为“秒”。
fps:RW属性,Number类型,必须是整数,默认值为25。fps即为frame per second,每秒多少帧。表 示一秒钟的动画需要使用多少次变化进行。
animationTarget:只写属性(Bad Practice),String类型。通过ID查找target。
isActive:只读属性,Boolean类型。查看Animation是否处于活动状态(Play或Pause状态)。
isPlaying:只读属性,Boolean类型。查看Animation是否处于播放状态。
percentComplete:只读属性,Number类型。查看Animation已经播放的百分比。