Silverlight:关键帧动画

本主题介绍 Silverlight 中的关键帧动画。通过关键帧动画,您可以使用两 个以上的目标值制作动画,并控制动画的内插方法。

先决条件

若要了解本概述,应先熟悉 Silverlight 动画。

什么是关键帧动 画?

与 From/To/By 动画类似,关键帧动画以动画形式显示了目标属性的值。 它通过其 Duration 创建其目标值之间的过渡。但是,From/To/By 动画创建两个 值之间的过渡,而单个关键帧动画可以创建任意数量的目标值之间的过渡。

与 From/To/By 动画不同,关键帧动画没有设置其目标值所需的 From、 To 或 By 属性。而是使用关键帧对象描述关键帧动画的目标值。若要指定动画的 目标值,需要创建关键帧对象并将其添加到动画的 KeyFrames 属性。动画运行时 ,将在您指定的帧之间过渡。

某些关键帧方法除支持多个目标值外,还支 持多个内插方法。动画的内插方法定义了从某个值过渡到下一个值的方式。有三 种内插类型:离散、线性和样条。

若要使用关键帧动画进行动画处理,需 要完成下列步骤:

按照对 From/To/By 动画使用的方法声明动画并指定其 Duration。

对于每一个目标值,创建相应类型的关键帧,设置其值和 KeyTime,并将其添加到动画的 KeyFrames 集合内。

按照对 From/To/By 动画使用的方法,将动画与属性相关联。

下面的示例使用 DoubleAnimationUsingKeyFrames 对象对跨屏幕的 Rectangle 元素进行动画处理 。

XAML

<Canvas>
     <Canvas.Resources>
        <Storyboard  x:Name="myStoryboard">
            <!-- Animate  the TranslateTransform's X property
            from 0 to 350, then 50, then 200 over 10 seconds. -->
            <DoubleAnimationUsingKeyFrames
        Storyboard.TargetName="MyAnimatedTranslateTransform"
        Storyboard.TargetProperty="X"
        Duration="0:0:10">
                <!--  Using a LinearDoubleKeyFrame, the rectangle moves
            steadily from its starting position to 500 over
           the first 3 seconds.  -->
                 <LinearDoubleKeyFrame Value="500"  KeyTime="0:0:3" />
                <!--  Using a DiscreteDoubleKeyFrame, the rectangle suddenly
            appears at 400 after the fourth second of the  animation. -->
                 <DiscreteDoubleKeyFrame Value="400" KeyTime="0:0:4" />
                 <!-- Using a SplineDoubleKeyFrame,  the rectangle moves
           back to its  starting point. The animation starts out slowly at 
            first and then speeds up. This KeyFrame ends  after the 6th
           second. -->
                 <SplineDoubleKeyFrame KeySpline="0.6,0.0  0.9,0.00" Value="0" KeyTime="0:0:6" />
             </DoubleAnimationUsingKeyFrames>
         </Storyboard>
    </Canvas.Resources>
     <Rectangle MouseLeftButtonDown="Mouse_Clicked" Fill="Blue"
Width="50" Height="50">
         <Rectangle.RenderTransform>
             <TranslateTransform x:Name="MyAnimatedTranslateTransform" X="0"  Y="0" />
        </Rectangle.RenderTransform>
    </Rectangle>
</Canvas>

VB

' When the user clicks the Rectangle,  the animation
' begins.
Private Sub Mouse_Clicked(ByVal  sender As Object, ByVal e As MouseEventArgs)
     myStoryboard.Begin()
End Sub

就像在 From/To/By 动画中一样,使用 Storyboard 对象将关键帧动画应用于属性。

时间: 2024-09-22 01:37:50

Silverlight:关键帧动画的相关文章

Windows Phone开发(41):漫谈关键帧动画之下篇

原文:Windows Phone开发(41):漫谈关键帧动画之下篇 也许大家已经发现,其实不管什么类型的动画,使用方法基本是一样的,不知道大家总结出规律了没有?当你找到规律之后,你会发现真的可以举一反六的,不骗你. 为了能帮助大家找到规律,今天,我们再来写两个例子.   一.DiscreteObjectKeyFrame 简单介绍一下这个吧,它只是为了方便我们进行一些大的切换而提供,但它也不是万能的,尽管它的目标类型是object类型,前提是它与其它动画一样,只能针对某对象的某属性进行动画处理.与

Windows Phone开发(39):漫谈关键帧动画上篇

原文:Windows Phone开发(39):漫谈关键帧动画上篇 尽管前面介绍的几种动画会让觉得很好玩了,但是,不知道你是否发现,在前面说到的一系列XXXAnimation中,都有一个共同点,那就是仅仅针对两个值的目标值之间产生动画,如果使用By,将在原值和加上By后的目标值之间进行动画处理:如果使用From,To,那就更好理解了,就是首尾两个值之间值的动画. 那么,如果我希望三个值呢?或者N多个值呢?每个值之间的时间间隔不一样呢?如果我还希望更复杂的动画效果呢?比如可以附加缓动函数的.显然,前

Windows 8 Store Apps学习(19) 动画 线性动画, 关键帧动画, 缓动动画

介绍 重新想象 Windows 8 Store Apps 之 动画 线性动画 - 共有 3 种: ColorAnimation, DoubleAnimation, PointAnimation, 它们均继承自 Timeline 关键帧动画 - 共有 4 种:ColorAnimationUsingKeyFrames, DoubleAnimationUsingKeyFrames, PointAnimationUsingKeyFrames, ObjectAnimationUsingKeyFrames

《Programming WPF》翻译 第8章 4.关键帧动画

到目前为止,我们只看到简单的点到点的动画.我们使用了To和From属性或者By属性来设计动画-- 相对于当前的属性值.这很适合简单的动画,但是我们可以构造序列来创建更复杂的动画,这可能是非常 麻烦的.幸运的是,这是没有必要的.WPF提供了动画对象,允许我们详细指出一系列时间和值. 在影视中传统的动画中,这是普通的开始--通过绘制最重要的动画步骤.这些关键帧定义了场景的 基本流程,捕获了它的最重要的点.只要一旦这些关键帧是满意的,是保留的帧绘图.这些关键帧之间的 图像并不要求非常创造性的输入,它们

Windows Phone开发(40):漫谈关键帧动画之中篇

原文:Windows Phone开发(40):漫谈关键帧动画之中篇 一.DiscreteDoubleKeyFrame 离散型关键帧动画,重点,我们理解一下"离散"的意思,其实你查一下<新华字典>,"离"和"散"的意思相近.我们可以这样解释:每个关键帧之间是直接过渡,其间不经过动画插补.似乎这样理解有点苦涩难懂,所以,我们还是从实例入手. 请参考以下XAML代码写一个示例: <Grid Loaded="OnGridLoa

缓动函数与关键帧动画

缓动函数与关键帧动画 缓动函数指定动画效果在执行时的速度,使其看起来更加真实. 现实物体照着一定节奏移动,并不是一开始就移动很快的.当我们打开抽屉时,首先会让它加速,然后慢下来.当某个东西往下掉时,首先是越掉越快,撞到地上后回弹,最终才又碰触地板. http://easings.net/zh-cn 缓动函数能让动画效果看起来更加真实:).   iOS开发中,能用到缓动函数的地方就属于关键帧动画了,以下是我用关键帧动画做出来的模拟真实时钟效果的动画,效果相当逼真哦,只是这个gif图片的效果不好而已

iOS开发UI篇—核心动画(关键帧动画)

一.简单介绍 是CApropertyAnimation的子类,跟CABasicAnimation的区别是:CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSArray保存这些数值 属性解析: values:就是上述的NSArray对象.里面的元素称为"关键帧"(keyframe).动画对象会在指定的时间(duration)内,依次显示values数组中的每一个关键帧 path:可以

core Animation之CAKeyframeAnimation(关键帧动画)

CABasicAnimation的区别是:CABasicAnimation只能从一个数值(fromValue)变到另一个数值(toValue),而CAKeyframeAnimation会使用一个NSArray保存这些数值 属性解析: values:就是上述的NSArray对象.里面的元素称为"关键帧"(keyframe).动画对象会在指定的时间(duration)内,依次显示values数组中的每一个关键帧 path:可以设置一个CGPathRef\CGMutablePathRef,让

背水一战 Windows 10 (14) - 动画: 线性动画, 关键帧动画

原文:背水一战 Windows 10 (14) - 动画: 线性动画, 关键帧动画 [源码下载] 背水一战 Windows 10 (14) - 动画: 线性动画, 关键帧动画 作者:webabcd 介绍背水一战 Windows 10 之 动画 线性动画 - ColorAnimation, DoubleAnimation, PointAnimation 关键帧动画 - ColorAnimationUsingKeyFrames, DoubleAnimationUsingKeyFrames, Poin