• 关键帧动画概述


    <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      x:Class="Microsoft.Samples.KeyFrameAnimations.KeyFramesIntroduction"
      WindowTitle="KeyFrame Animations">

      <Border Width="400" BorderBrush="Black"> 

        <Rectangle Fill="Blue"
          Width="50" Height="50"
          HorizontalAlignment="Left">
          <Rectangle.RenderTransform>
            <TranslateTransform
              x:Name="MyAnimatedTranslateTransform"
              X="0" Y="0" />
          </Rectangle.RenderTransform>
          <Rectangle.Triggers>
            <EventTrigger RoutedEvent="Rectangle.MouseLeftButtonDown">
              <BeginStoryboard>
                <Storyboard>

                  <!-- 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">
                    <LinearDoubleKeyFrame Value="0" KeyTime="0:0:0" />
                    <LinearDoubleKeyFrame Value="350" KeyTime="0:0:2" />
                    <LinearDoubleKeyFrame Value="50" KeyTime="0:0:7" />
                    <LinearDoubleKeyFrame Value="200" KeyTime="0:0:8" />                         
                  </DoubleAnimationUsingKeyFrames>
                </Storyboard>
              </BeginStoryboard>
            </EventTrigger>
          </Rectangle.Triggers>
        </Rectangle>
      </Border>
    </Page>

    内插方法

     

    前面部分提到了某些关键帧动画支持多种内插方法。动画的内插对动画在其持续时间内在值之间进行过渡的方式进行了描述。通过选择您的动画将要使用哪种关键帧类型,您可以定义该关键帧段的内插方法。有三种类型的内插方法:线性、离散和样条。

    线性内插

    使用线性内插,动画将以段持续期间内的固定速度来播放。例如,如果关键帧段从 0 过渡到 10,持续期间为 5 秒,则动画会在指定时间输出以下值:

     

    时间

    输出值

    0

    0

    1

    2

    2

    4

    3

    6

    4

    8

    4.25

    8.5

    4.5

    9

    5

    10

    离散内插

    使用离散内插,动画函数将从一个值跳到下一个没有内插的值。如果关键帧段从 0 过渡到 10,持续期间为 5 秒,则动画会在指定时间输出以下值:

     

    时间

    输出值

    0

    0

    1

    0

    2

    0

    3

    0

    4

    0

    4.25

    0

    4.5

    0

    5

    10

    请注意,动画在段持续期间恰好结束之前不会更改其输出值。

    样条内插更为复杂。有关内容将在下一部分介绍。

    样条内插

    样条内插可用于达到更现实的计时效果。由于动画通常用于模拟现实世界中发生的效果,因此开发人员可能需要精确地控制对象的加速和减速,并需要严格地对计时段进行操作。通过样条关键帧,您可以使用样条内插进行动画处理。使用其他关键帧,您可以指定一个 ValueKeyTime。 使用样条关键帧,您还可以指定一个 KeySpline。 下面的示例演示 DoubleAnimationUsingKeyFrames 的单个样条关键帧。 请注意 KeySpline 属性,它正是样条关键帧与其他类型的关键帧的不同之处。

  • 相关阅读:
    [zz]libvirt中CPU和内存的细粒度管理机制
    SAP 模块中文解释
    邪恶的Php一句话木马 assert函数制作简单木马
    PHP开发中三维数组的应用
    返回本机时间或服务器时间
    向SQL中插入数据
    Word的字体
    人生如锅
    打开指定的文件
    计算最大序号
  • 原文地址:https://www.cnblogs.com/w2011/p/2474871.html
Copyright © 2020-2023  润新知