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,表示动画播放完毕后会自动从后向前反向播放,并且是无限制的播放。

转载于:https://blog.51cto.com/wzk89/441585

Silverlight动画制作之From/To/By基本动画相关推荐

  1. html5课件动画制作,从此再也不担心课件/动画的开发了!

    原标题:从此再也不担心课件/动画的开发了! 数字学习工具 定期推送优质地数字学习工具,敬请期待! 本期编辑:王幸娟.冯孟坭.丁雪菲 在前面的文章中,我们向大家隆重推出了本公众号运营团队的精诚之作--& ...

  2. gif透明背景动画_火柴人动画制作软件下载_火柴人动画制作软件最新电脑版下载...

          火柴人动画制作软件官方版(Pivot Stickfigures Animator)是一款完全免费的火柴人动画制作软件.如果您不具备Flash等专业动画软件制作技能,那么可使用火柴人动画制作 ...

  3. ue4树叶飘落动画_Android:使用属性动画制作器的类似于树叶的动画

    ue4树叶飘落动画 在上一教程中,我们解释了属性动画通常如何工作. 现在,我们将进一步讲解如何创建属性动画,该动画将为ImageView产生类似于树叶飘落的效果,在其中我们显然将放置树叶的图像. 为此 ...

  4. linux开机动画制作教程,【转载】开机动画的制作过程(bootanimation.zip)

    Android bootanimation 制作过程 这个东西一直想研究,今天无意发现转过来看看 Android bootanimation制作过程: android启动动画需要一个bootanima ...

  5. 动画制作c语言程序,C语言动画制作

    #include "user-def.H" void main() {    int i;        printf("简单动画演示程序\n");    fo ...

  6. CrazyTalk 8 中文版 照片会说话动画制作 带动作脚本 点头眨眼动画制作

    资源下载地址 CrazyTalk8带脚本 点头眨眼摇头张嘴 制作

  7. 计算机动画制作 实验要求,A074计算机动画制作实验——动画制作初步

    计算机动画制作实验--动画制作初步 计算机动画制作实验--动画制作初步 设计者 庞岩 单位 海南海口实验中学 e_mail technic88@http://doc.xuehai.net 案例名称 计 ...

  8. 多媒体制作技术心得体会_二维flash课件动画制作的价格是多少

    伴随现代多媒体技术的不断发展,多媒体在课堂中的应用也越来越广泛, flash动画在多媒体课件中的分量不断提升.艺虎动画认为,在这样的flash动画课件应用背景下,要对二维flash动画课件制作的价格. ...

  9. 3d max用不同目标做关键帧_3D动画制作流程大解析

    普通的二维动画发展至今已有许久,基本上所有的画面全靠动画师一张张画出来,小编在这里也就不再多说了. 而现如今,3d动画已经有了独属于自己的地位.业界大牛如皮克斯.迪士尼等公司,已经做出了许多非常优秀的 ...

最新文章

  1. PyTorch常用代码段整理合集,建议收藏!
  2. 多态 oc c++ 与oc category
  3. Linux下如何使用虚拟用户增加FTP的安全性
  4. 深入解析JNA—模拟C语言结构体
  5. 67-Flutter中高德地图插件的使用
  6. 刚出道的黑客搞瘫美国输油管道!他们还边搞钱边捐款
  7. mysql5.7bka_mysql5.7的sql优化
  8. c51单片机蜂鸣器程序C语言响,单片机蜂鸣器响生日快乐编程程序
  9. java22:API-Object-String
  10. springboot整合持久层技术(mysql驱动问题)
  11. ros melodic控制真实机械臂之moveit_setup_assistant配置
  12. python gzip压缩_Python gzip –压缩解压缩
  13. 修改 linux ftp端口,如何修改ftp默认端口
  14. 知识付费的痛点:如何让用户持续学习?
  15. Vehicle veh1 = new Vehicle(); 如何理解这个语句
  16. DID; PSM; DID-PSM
  17. 科研画图都用什么软件
  18. 数学建模动态规划的小案例之R代码实现——生产计划问题
  19. Jetson Nano复制系统和U盘启动【第三部分】
  20. 【小程序】自定义顶部导航栏(左上角返回等)

热门文章

  1. Ubuntu环境搭建
  2. 【Leetcode | 】93. 复原IP地址
  3. Java高级工程师每日面试题精选,面试经历分享
  4. 熬夜肝完这份Framework笔记,已拿到offer
  5. 覆盖所有面试知识点,建议收藏
  6. 知乎大V推荐!面试官6个灵魂拷问,原理+实战+视频+源码
  7. 大理石在哪儿 (Where is the Marble?,UVa 10474)
  8. QZEZ第一届“饭吉圆”杯程序设计竞赛
  9. 简介浏览器内核与JavaScript引擎
  10. 网管的自我修养-网络系统