关键帧动画在Silverlight中是很重要的动画,当然Silverlight中也支持关键帧动画,而在本示例则是使用向量和Storyboard结合来模拟实现一个关键帧动画。

我们要做的效果是:猴子散步。具体效果看如下截图:

Silverlight动画基础四:动画与向量-使用向量模拟关键帧动画

主要包含两个对象monkey、monkeyWalk。

 

1.monkey

主要逻辑均包含在内,控制自身的位置、状态、方向。具有12帧,完全使用XAML绘制,效果图如下:

Silverlight动画基础四:动画与向量-使用向量模拟关键帧动画Silverlight动画基础四:动画与向量-使用向量模拟关键帧动画Silverlight动画基础四:动画与向量-使用向量模拟关键帧动画Silverlight动画基础四:动画与向量-使用向量模拟关键帧动画Silverlight动画基础四:动画与向量-使用向量模拟关键帧动画Silverlight动画基础四:动画与向量-使用向量模拟关键帧动画

Silverlight动画基础四:动画与向量-使用向量模拟关键帧动画Silverlight动画基础四:动画与向量-使用向量模拟关键帧动画Silverlight动画基础四:动画与向量-使用向量模拟关键帧动画Silverlight动画基础四:动画与向量-使用向量模拟关键帧动画Silverlight动画基础四:动画与向量-使用向量模拟关键帧动画Silverlight动画基础四:动画与向量-使用向量模拟关键帧动画

 

monkey.xaml声明了一组视图状态(VisualStateManager),包含了12个状态,每个状态包含了一个Storyboard用于控制当前状态下要显示的效果图。

以此来控制猴子行走过程中中的视图切换,代码比较长,无实际逻辑代码,就不展示出来了,提供此文件的下载。

monkey.rar

主要看下monkey.xaml.cs代码。

 

monkey.xaml.cs代码

this.walkTimer.Begin();
}
}

 

2.monkeyWalk

monkeyWalk为容器,承载monkey对象,用于初始化、加载monkey。

monkey.xaml代码:

>

 

monkeyWalk.xaml.cs代码

public monkeyWalk()
{
InitializeComponent();
Canvas.SetTop(myMonkey, 488);
Canvas.SetLeft(myMonkey, 150);
LayoutRoot.Children.Add(myMonkey);
myMonkey.RootWidth = LayoutRoot.Width;
myMonkey.walkTimer.Begin();
}
}

 

monkeyWalk代码比较简单,其关键代码主要由monkey自身控制,所有代码完成,相关步骤参考代码注释说明。

 

运行效果演示地址:点击查看

 

【注:本文技术论点源于《Foundation Silverlight 3 Animation》,个人理解可能存在差异,请参考原著】

相关文章: