Windows Phone开发(41):漫谈关键帧动画下篇
创始人
2024-09-11 21:50:57
0

也许大家已经发现,其实不管什么类型的动画,使用方法基本是一样的,不知道大家总结出规律了没有?当你找到规律之后,你会发现真的可以举一反六的,不骗你。

为了能帮助大家找到规律,今天,我们再来写两个例子。

一、DiscreteObjectKeyFrame

简单介绍一下这个吧,它只是为了方便我们进行一些大的切换而提供,但它也不是万能的,尽管它的目标类型是object类型,前提是它与其它动画一 样,只能针对某对象的某属性进行动画处理。与Flash相比,Silverlight是少了一些灵活性,但我们知道,毕竟Silverlight并不是真 的为了做动画而诞生的,微软推出它的意义是用于企业级应用。而所谓的对多媒体支持或动画之类,是为了提供更好的用户体验罢了,不要真把它当成娱乐专用哦。

好,F话就说到这里,下面开始练习,首先你可以参照下面XAML代码完成前台布局,随便你写在哪,反正你找到Grid控件当容器就行了。练习嘛也是很灵活的,我从来不会对大家做死搬硬套的要求。

  1.    
  2.        
  3.        
  4.            
  5.             
  6.                 Duration="0:0:8"   
  7.                 Storyboard.TargetName="rec"   
  8.                 Storyboard.TargetProperty="Fill"   
  9.                 RepeatBehavior="Forever">   
  10.                    
  11.                        
  12.                            
  13.                        
  14.                    
  15.                    
  16.                        
  17.                            
  18.                                
  19.                                
  20.                                
  21.                            
  22.                        
  23.                    
  24.                    
  25.                        
  26.                            
  27.                                
  28.                                
  29.                            
  30.                        
  31.                    
  32.                
  33.            
  34.        
  35.    

上面代码中,我们定义了一个rec_Loaded事件处理程序,目的是启动动画,所以,在上面代码中的rec_Loaded处单击右键,从弹出的菜单中选择“导航到事件处理程序”,这样就生成了一个事件处理方法rec_Loaded了,接着我们在这里开始播放动画。

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

现在请你调试运行,观赏一下效果吧。

二、LinearPointKeyFrame

这个东西大家一定熟悉,就是对两个点之间进行动画,前面的例子有,但这是关键帧动画,也就是说可以在N个点间产生动画,使用XAML时,它是PointAnimationUsingKeyFrames的子元素。

请参考下面的XAML代码构建UI界面。

  1.    
  2.        
  3.            
  4.                
  5.                    
  6.                    
  7.                
  8.            
  9.        
  10.        
  11.            
  12.             
  13.                     Duration="0:0:12"   
  14.                     Storyboard.TargetName="ell"   
  15.                     Storyboard.TargetProperty="(Ellipse.Fill).(RadialGradientBrush.Center)"   
  16.                     RepeatBehavior="Forever">   
  17.                    
  18.                    
  19.                    
  20.                    
  21.                
  22.            
  23.        
  24.    

不要忘了启动动画。

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

好,看看效果如何。

不知道大家通过练习,感觉如何,如果你WPF基础很扎实的话,我相信这些例子你根本不用看都懂了,当然,如果你是初学者,也不要被这些东西吓,如果 你真想学习,哪怕理论上的东西你搞不懂(其实,理论的东西没几个人真的会懂的)也不要紧,关键是多动手,多练习。还是那句话,你会穿衣服就行了,没有人说 非得要懂得怎么做衣服后才能穿衣服的。是不是这个道理呢?如果你不理解农民伯伯是怎么把菜种出来的,难道你不吃菜了不成?

相关内容

热门资讯

如何允许远程连接到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...