Silverlight动画制作之From/To/By基本动画

简介:




Silverlight动画制作之From/To/By基本动画

From/To/By 基本动画其中包含了三个最重要的属性: From To By From 指的是对象目标属性的起始值, To 指的是对象目标属性的结束值, By 指的是结束状态相对于起始状态的偏移量。这里我们需要注意的是动画对象不能同时包括 To By 两个属性,否则编译器会忽略掉 By 属性的作用。
Silverlight From/To/By 基本动画提供了 3 Timeline 的派生类:
1 DoubleAnimation :指定时间内,使用线性内插属性处理属性值为 Double 的动画。
2 ColorAnimation :指定时间内,使用线性内插属性处理属性值为 Color 的动画。
3 PointAnimation :指定时间内,使用线性内插属性处理属性值为 Point 的动画。
在使用方法上这 3 中动画没有太大的区别,唯一的不同点就是我们怎么样给 From To By 属性进行赋值。
下面我们通过一个小的 Demo 演示一下 From/To/By 基本动画。
演示效果如图:
刚开始时的动画:
结束时的动画:
我们可以从两张图很明显看到这个圆形从半径,颜色,位置上都发生了变化。下面我们通过代码看一下这样的效果是如何实现的。
<Canvas x:Name="LayoutRoot" Background="White">
              <Path x:Name="PathAnimate">
                     <Path.Fill>
                            <RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5"
                             RadiusX="0.5" RadiusY="0.5">
                                   <GradientStop Color="Black" Offset="0"/>
                                   <GradientStop x:Name="BrushAnimate" Offset="0.5"/>
                                   <GradientStop Color="Chocolate" Offset="1"/>
                            </RadialGradientBrush>
                     </Path.Fill>
                     <Path.Data>
                            <EllipseGeometry x:Name="EllipseGeometryAnimate"/>
                     </Path.Data>
                     <Path.Triggers>
                            <EventTrigger RoutedEvent="Path.Loaded">
                                   <BeginStoryboard>
                                          <Storyboard>
                                                 <!-- 控制圆形的水平半径 -->
                                                 <DoubleAnimation
                                                 Storyboard.TargetName="EllipseGeometryAnimate"
                                                 Storyboard.TargetProperty="RadiusX"
                                                 From="25" To="80" Duration="0:0:4"
                                                 RepeatBehavior="Forever" AutoReverse="True"/>
                                                  <!-- 控制圆形的垂直半径 -->
                                                 <DoubleAnimation
                                                 Storyboard.TargetName="EllipseGeometryAnimate"
                                                 Storyboard.TargetProperty="RadiusY"
                                                 From="25" To="80" Duration="0:0:4"
                                                 RepeatBehavior="Forever" AutoReverse="True"/>
                                                  <!-- 控制圆形的填充颜色 -->
                                                 <ColorAnimation
                                                 Storyboard.TargetName="BrushAnimate"
                                                 Storyboard.TargetProperty="Color"
                                                 From="Black" To="Chocolate" Duration="0:0:4"
                                                 RepeatBehavior="Forever" AutoReverse="True"
                                                 SpeedRatio="2"/>
                                                  <!-- 控制圆形的中心点 -->
                                                 <PointAnimation
                                                 Storyboard.TargetName="EllipseGeometryAnimate"
                                                 Storyboard.TargetProperty="Center"
                                                 From="25,25" To="150,150" Duration="0:0:4"
                                                 RepeatBehavior="Forever" AutoReverse="True"/>
                                          </Storyboard>
                                   </BeginStoryboard>
                            </EventTrigger>
                     </Path.Triggers>
              </Path>
       </Canvas>
下面我们来说一下这段代码的基本意思:
1 )首先我们声明了 3 个对象,分别是路径图形,放射渐变画刷和椭圆几何图形。这些对象我们只进行了命名,相关属性的设置需要我们在接下来的代码中去实现。
2 )接下来我们声明动画播放的触发器事件: Path.Loaded
3 )然后我们向情节串联图版 Storyboard 中添加动画元素。在我们这个 Demo 中首先添加了两个 DoubleAnimation 对象,目的是为了改变椭圆几何图形的水平半径和垂直半径,所以我们设置的目标属性分别是 RadiusX RadiusY 。我们还声明了 ColorAnimation 对象用来改变放射渐变画刷停止点的颜色,除了我们声明 From To 之外,还设定了 SpeedRatio 的值为 2 ,说明其他动画运行一次,颜色却已经变换了 2 次。最后声明了 PointAnimation 对象,用于控制椭圆几何图形的中心 Center 属性。 Center 属性值类型为 Point 类型,所以我们声明 From To 的时候需要按照坐标形式。
4 )最后需要注意的是我们还声明了 RepeatBehavior AutoReverse 两个属性, RepeatBehavior 属性值为 Forever AutoReverse 属性值为 True ,表示动画播放完毕后会自动从后向前反向播放,并且是无限制的播放。
 



 本文转自 王祖康 51CTO博客,原文链接: http://blog.51cto.com/wzk89/441585 ,如需转载请自行联系原作者
相关文章
|
C# 前端开发
silverlight,WPF动画终极攻略之阳光灿烂篇(Blend 4开发)
原文:silverlight,WPF动画终极攻略之阳光灿烂篇(Blend 4开发) 前面我们画了一只会飞动的小鸟,今天我们在目标是一个会发光的太阳。本章节的动画虽然简单,但是实现的效果可是一点也不打折。
1148 0
|
C#
silverlight,WPF动画终极攻略之会飞的小鸟篇(Blend 4开发)
原文:silverlight,WPF动画终极攻略之会飞的小鸟篇(Blend 4开发) 本教程基本涵盖了WPF和silverlight中的各种动画。先上张效果图。 声明下,这个做的不是让大家照搬的,只是让大家熟悉下动画效果,这个成品基本涵盖了sl里面所有的动画效果。
1334 0
|
C#
silverlight,WPF动画终极攻略之迟来的第三章 动画整合篇(Blend 4开发)
原文:silverlight,WPF动画终极攻略之迟来的第三章 动画整合篇(Blend 4开发) 有个问题想请教下大家,我仿了腾讯的SL版QQ,相似度95%以上。我想写成教程教大家怎么开发出来,会不会有版权什么问题的。
1062 0
|
前端开发 C#
silverlight,WPF动画终极攻略之白云飘,坐车去旅游篇(Blend 4开发)
原文:silverlight,WPF动画终极攻略之白云飘,坐车去旅游篇(Blend 4开发) 这章有点长,所以我分成了两章。这一章主要是准备工作,差不多算美工篇吧,这章基本不会介绍多少动画效果,主要讲的是blend中工具的使用,利用哪些工具做出哪些效果。
1171 0
|
前端开发 C#
silverlight,WPF动画终极攻略之番外 3D切换导航篇(Blend 4开发)
原文:silverlight,WPF动画终极攻略之番外 3D切换导航篇(Blend 4开发) 这篇介绍的是3D导航,点击图标,页面360°翻转的效果!有什么不足的欢迎大家指出来。 1.新建一个usercontrol,命名为menu. 2.按照下图设置一下属性。
1220 0
|
容器
Silverlight & Blend动画设计系列二:旋转动画(RotateTransform)
原文:Silverlight & Blend动画设计系列二:旋转动画(RotateTransform)   Silverlight的基础动画包括偏移、旋转、缩放、倾斜和翻转动画,这些基础动画毫无疑问是在Silverlight中使用得最多的动画效果,其使用也是非常简单的。
965 0
|
容器 数据可视化 内存技术
Silverlight & Blend动画设计系列一:偏移动画(TranslateTransform)
原文:Silverlight & Blend动画设计系列一:偏移动画(TranslateTransform)   用户界面组件、图像元素和多媒体功能可以让我们的界面生动活泼,除此之外,Silverlight还具备动画功能,它可以让应用程序“动起来”。
794 0
Silverlight & Blend动画设计系列四:倾斜动画(SkewTransform)
原文:Silverlight & Blend动画设计系列四:倾斜动画(SkewTransform)   Silverlight中的倾斜变化动画(SkewTransform)能够实现对象元素的水平、垂直方向的倾斜变化动画效果。
795 0
|
容器
Silverlight & Blend动画设计系列五:故事板(StoryBoards)和动画(Animations)
原文:Silverlight & Blend动画设计系列五:故事板(StoryBoards)和动画(Animations)   正如你所看到的,Blend是一个非常强大的节约时间的设计工具,在Blend下能够设计出很多满意的动画作品,或许他具体是怎么实现的,通过什么方式实现的我们还是一无所知。
911 0
Silverlight & Blend动画设计系列七:模糊效果(BlurEffect)与阴影效果(DropShadowEffect)
原文:Silverlight & Blend动画设计系列七:模糊效果(BlurEffect)与阴影效果(DropShadowEffect)   模糊效果(BlurEffect)与阴影效果(DropShadowEffect)是两个非常实用和常用的两个特效,比如在开发相册中,可以对照片的缩略图添加模糊效果,在放大照片的过程中动态改变照片的大小和模糊的透明度来达到一个放大透明的效果。
1045 0

热门文章

最新文章