Windows Phone开发(40):漫谈关键帧动画中篇
创始人
2024-09-11 21:42:02
0

一、DiscreteDoubleKeyFrame

离散型关键帧动画,重点,我们理解一下“离散”的意思,其实你查一下《新华字典》,“离”和“散”的意思相近。我们可以这样解释:每个关键帧之间是直接过渡,其间不经过动画插补。似乎这样理解有点苦涩难懂,所以,我们还是从实例入手。

请参考以下XAML代码写一个示例:

  1.        
  2.            
  3.                
  4.                    
  5.                
  6.            
  7.            
  8.                
  9.                 
  10. Storyboard.TargetName="trm"   
  11. Storyboard.TargetProperty="Y">   
  12.                        
  13.                        
  14.                        
  15.                    
  16.                
  17.            
  18.        

在后台的C#代码中,千万不要记了启动动画,等下运行后发现动不了就麻烦了。

  1. private void OnGridLoaded(object sender, RoutedEventArgs e)   
  2. {   
  3.     this.std.Begin();   
  4. }   

然后你可以运行了,注意认真观察动画的演变过程。

不知道你观察到了什么?你是否发现,矩形向下运动的过程是直接跳跃式的,每个关键之间没有创建过渡效果,而且直接跳到对应值。

二、DiscreteColorKeyFrame

这也是一个离散型关键帧动画,从名字上我们知道,它是针对颜色进行动画处理的。还是看例子吧。

请参考下面XAML代码写一个测试程序:

  1.        
  2.            
  3.                
  4.                    
  5.                
  6.            
  7.            
  8.                
  9.                 
  10. RepeatBehavior="20"   
  11. Storyboard.TargetName="brush"   
  12. Storyboard.TargetProperty="Color">   
  13.                        
  14.                        
  15.                        
  16.                    
  17.                
  18.            
  19.        

后台代码就不帖了,都懂得写什么了。

然后运行一下,查看效果。

从效果中可以看到,颜色的改变是没有平滑的过渡效果的,而是当时间线的播放时间到了关键帧所在的位置时,颜色是直接改变的。

三、LinearColorKeyFrame

线性颜色的关键帧与离散型动画相反,每个关键帧之间都创建平滑的过渡效果,让人看起来有连续感。

请参考以下XAML代码写一个测试程序。

  1.        
  2.            
  3.                
  4.                 
  5.                                      RadiusX="0.5" RadiusY="0.5">   
  6.                        
  7.                        
  8.                    
  9.                
  10.            
  11.            
  12.                
  13.                 
  14. RepeatBehavior="Forever"   
  15. Storyboard.TargetName="rdGradientBrush"   
  16. Storyboard.TargetProperty="(RadialGradientBrush.GradientStops)[0].(GradientStop.Color)">   
  17.                        
  18.                        
  19.                        
  20.                    
  21.                 
  22. RepeatBehavior="Forever"   
  23. Storyboard.TargetName="rdGradientBrush"   
  24. Storyboard.TargetProperty="(RadialGradientBrush.GradientStops)[1].(GradientStop.Color)">   
  25.                        
  26.                        
  27.                        
  28.                    
  29.                
  30.            
  31.        

页面上的正圆是使用径向渐变填充的,渐变颜色点有两个,我们分别对这两个渐变点的颜色进行线性动画处理,这样就会做出很漂亮的效果,如下面图片所示。

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...