在silverlight 2的时候我写过一篇《Silverlight制作逐帧动画》,这个是采用storyboard的原理来做的。现在到了silverlight 3最近又想到一个动态将Rectangle的Fill属性设置为动画每一帧的图形。完全用代码的形式来实现动画。 这里先放出一个原型。
首先准备好素材,我准备做一个4帧的飞机小动画。这个比之前采用storyboard做动画的好处是不用对坐标(一张长的图片做起来太累了)。
这个飞机的大小为35*45,所以在舞台上就先放置一个同样大小的Rectangle,(这里只是一个原型的想法,后期可以再封装)为这里Rectangle起名“myShip”。
将素材图片放入项目中
下来就是动态的设置Rectangle的Fill属性了.
做过flash开发的朋友对flash中的enterFrame应该很是熟悉了. 在silverlight中作为enterFrame的替代有"CompositionTarget.Rendering"这个事件.
接下来就要从程序集中取出图片赋到Rectangle上了。关于的取图片可以看下这里《从xap文件中加载图片》。
其完整代码如下