SilverLight学习笔记--Silverlight中的动画创建与操作

在Silverlight中,我们常使用StoryBoard(故事板)来实现类似于动画的效果。Silverlight 2.0 动画分为以下几类:

    1、ColorAnimation - 在两个 Color 值之间做线性内插动画处理
     
2、DoubleAnimation - 在两个 Double 值之间做线性内插动画处理
     
3、PointAnimation - 在两个 Point 值之间做线性内插动画处理
     
4、内插关键帧动画 - 在 Color 或 Double 或 Point 动画中内插关键帧,以做线性, 离散, 三次贝塞尔曲线的动画处理
     
5、动态改变动画 - 通过程序控制,动态地改变动画
本例我们将建立上面所提的两种类型的动画(ColorAnimation 和 DoubleAnimation ),并以此为基础,示范:
     1、如何在后台操作动画(运行,暂停,继续,终止)
     
2、如何在后台用代码动态设置动画中的有关参数(如:AutoReverse,BeginTime,FillBehavior等等)
     
3、如何在后对号动态地指派某个动画给指定的控件
      
4、如何在后台用代码动态地创建动画并指派给某个控件。
下面我们来完成我们的任务



还是照常,我们首先建立新Silverlight应用程序,命名为:MyStoryBoard
在Silverligth项目MyStoryBoard下我们编辑page.xaml文件,代码如下:
Code
分析上述代码,我们建立了:
   1、两个椭圆形,分别命名为:ellipseLeft和ellipseRight,作为动画效果的载体
   2、创建了三个动画,其中一个ColorAnimation类型,两个DoubleAnimation类型,它们都在一个Storyboard中(名为leftEllipseStory),一开始,这个动画默认的Target是ellipseLeft。
   3、我们还建立了四个按钮(btnLeftOpen,btnLeftPause,btnLeftPause,btnLeftStop)来控制动画的播放。
   4、另外,我们建立了两个按钮分别名为btnRightOpenAssign和btnRightOpenCreate.
   其中,btnRightOpenAssign用于实现在后台代码动态地指派动画给指定控件,在此处,我们实现有后台代码动态地把原本指向ellipseLeft的动画动态地重新指派给ellipseRight,这样,在当我们点击btnRightOpenAssign按钮后,我们可以看到原先展示在ellipseLeft控件上的动画现在展示在了ellipseRight控件上了。
   而btnRightOpenCreate按钮则实现用后台代码来动态地创建动画,然后把它指派给我们指定的ellipseRight控件,这是一个有淡出效果的动画。
  后台代码分析:
1、有关动画属性参数的设置代码
Code
  2、有关动画控制的代码
  leftEllipseStory.Begin();
 leftEllipseStory.Pause();
 leftEllipseStory.Resume();
 leftEllipseStory.Stop();
 3、有关指派动画给指定控件的代码,共有三种方式来达到此目的
Code
 4、有关动态创建动画并进行指派的代码
Code
  Page.xaml.cs全部代码如下:
Code
按F5运行可以看到结果。
前往:Silverlight学习笔记清单
本文参照了部分网络资料,希望能够抛砖引玉,大家共同学习。
(转载本文请注明出处)

posted @ 2009-07-25 12:32  wsdj  阅读(1987)  评论(0编辑  收藏  举报