关键帧动画在Silverlight中是很重要的动画,当然Silverlight中也支持关键帧动画,而在本示例则是使用向量和Storyboard结合来模拟实现一个关键帧动画。
我们要做的效果是:猴子散步。具体效果看如下截图:
主要包含两个对象monkey、monkeyWalk。
1.monkey
主要逻辑均包含在内,控制自身的位置、状态、方向。具有12帧,完全使用XAML绘制,效果图如下:
monkey.xaml声明了一组视图状态(VisualStateManager),包含了12个状态,每个状态包含了一个Storyboard用于控制当前状态下要显示的效果图。
以此来控制猴子行走过程中中的视图切换,代码比较长,无实际逻辑代码,就不展示出来了,提供此文件的下载。
主要看下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》,个人理解可能存在差异,请参考原著】