前一阵装好了VS2010 beta2 和Silverlight4.0,做了一个汽车运动的动画,先来个效果图(有图有真相):
演示地址: http://xingjunli.webs.com/SilverlightCar.html
下面分解一下我动画设计的过程:
1、搭建SL4.0开发环境(我的安装顺序如下):
1.1、window7 + IIS安装(参考 在windows 7下安装和设置IIS 发布Silverlight站点)
1.2、安装:dotNetFx40_Full_x86
1.3、安装:VS2010B2Pro
1.4、安装:Silverlight4_Tools
1.5、安装:Blend_Trial_en
1.6、安装:Silverlight
2、创建Silverlight项目目录结构如下:
2.1:、我将整个动画分解为三个元件(UCWheel(轮子)、UCar(汽车),ucmainBg(背景及斑马线)),
2.2、在主场景MainPage中引入上面创建的元件组合成一个完整动画;
3、创建轮子旋转动画:
3.1、点击如上图Objects and Timeline 面板中的"+"创建一个时间线动画
3.2、在故事面板中选中Image图片,应用PlaneProjection.RotationZ(参考MSDN:PlaneProjection.RotationZ 属性 ) 属性(分别在时间线0秒和0.8秒处设置属性值0和360)让轮子绕Z轴圆心旋转起来(为保证轮子绕着圆心旋转,我们需要设置image属性: RendertransformOrigin="0.5,0.5",) ;
3.3、代码如下:
4、创建汽车动画(引用轮子旋转用户控件):
4.1、在UCCar中导入汽车车身图片;
4.2、轮子动画有了汽车动画就很简单了,展开控件面板,找到UCWheel用户控件,向汽车动画控件(UCCar)引入两个(一个前轮,一个后轮),调整其位置,和大小就OK了;
4.3、在引用非SL官方标准控件时,会在XAML中引入控件命名空间如“xmlns:local="clr-namespace:SilverlightCar.UControl"”,在XAML中通过“<local:UCWheel Canvas.top="186" Canvas.left="39"/>”这样的方式引入或者创建用户控件;
4.4、汽车动画代码如下:
5、创建背景动画(全景图、斑马线动画):
有了一些Blend设计础后创建立全景和斑马线动画就比较容易了,直接来代码:
@H_502_174@using System;using System.Collections.Generic;using System.linq;using System.Net;using System.windows;using System.windows.Controls;using System.windows.documents;using System.windows.input;using System.windows.Media;using System.windows.Media.Animation;using System.windows.Shapes;namespace SilverlightCar.UControl{ public partial class ucmainBg : UserControl { public ucmainBg() { InitializeComponent(); this.Loaded += new RoutedEventHandler(ucmainBg_Loaded); } voID ucmainBg_Loaded(object sender,RoutedEventArgs e) { sbMoveMainBg.Begin(); sbRunRoad.Begin(); } }}
6、在主场景中组合上面的动画元件完成整个动画功能:
做到这大功快要告成了,引入上面创建的用户控件,调整其位置大小,F5运行完成。
结语:上面场景中动画都是在Blend中设计完成的,要使动画重复执行只需要在storyboard中设置 RepeatBehavior="forever"。欢迎大家拍砖。如需源代码请留Email。
总结以上是内存溢出为你收集整理的Silverlight4.0 应用demo1 飞驰汽车动画全部内容,希望文章能够帮你解决Silverlight4.0 应用demo1 飞驰汽车动画所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)