(一)定义:

缓动函数:可以将自定义算术公式应用于动画

(二)为什么要用缓动函数:

您可能希望某一对象逼真地弹回或其行为像弹簧一样。您可以使用关键帧动画甚至 From/To/By 动画来大致模拟这些效果,但可能需要执行大量的工作,并且与使用算术公式相比动画的精确性将降低。

(三)实例讲解:

 <UserControl x:Class="AnimationStudy.EasingFunctionAnimation"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="" d:DesignWidth=""> <StackPanel x:Name="LayoutRoot" Background="White">
<StackPanel.Resources>
<!--
缓动函数:
()EasingFunction属性:指定要应用于该动画的缓动函数
()EasingMode属性:更改缓动函数的行为方式(更改动画的内插方式:EaseIn、EaseOut、EaseInOut )
() EasingMode的三种内插方式:
EaseIn :内插遵循与缓动函数相关联的算术公式。
EaseOut :内插遵循 % 内插减去与缓动函数相关联的公式输出。
EaseInOut :内插将 EaseIn 用于动画的前半部分,将 EaseOut 用于动画的后半部分。
()缓动函数应用范围:
From/To/By 动画
关键帧动画
()常见的缓动函数:
BackEase :在某一动画开始沿指示的路径进行动画处理前稍稍收回该动画的移动。
BounceEase :创建弹回效果。
CircleEase :创建使用循环函数加速和/或减速的动画。
ElasticEase :创建表示弹簧在停止前来回振荡的动画。
SineEase :创建使用正弦公式加速和/或减速的动画。
ExponentialEase :创建使用指数公式加速和/或减速的动画。
【 PowerEase类动画】创建与使用 Power 属性的 CubicEase、QuadraticEase、QuarticEase 和 QuinticEase 的相同的行为
PowerEase :创建使用公式 f(t) = tp(其中,p 等于 Power 属性)加速和/或减速的动画。
CubicEase :创建使用公式 f(t) = t3 加速和/或减速的动画。
QuadraticEase :创建使用公式 f(t) = t2 加速和/或减速的动画。
QuarticEase :创建使用公式 f(t) = t4 加速和/或减速的动画。
QuinticEase :创建使用公式 f(t) = t5 加速和/或减速的动画。
()通过从 EasingFunctionBase 继承来创建自己的自定义缓动函数
覆盖 EaseInCore 方法,针对缓动函数的行为方式添加您自己的数学逻辑,如下代码:
namespace CustomEasingFunction
{
public class CustomSeventhPowerEasingFunction : EasingFunctionBase
{
public CustomSeventhPowerEasingFunction() : base()
{
}
protected override double EaseInCore(double normalizedTime)
{
return Math.Pow(normalizedTime, );
}
}
}
-->
<Storyboard x:Name="myStoryboard">
<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="Height"
Storyboard.TargetName="myRectangle">
<EasingDoubleKeyFrame Value="" KeyTime="00:00:02">
<EasingDoubleKeyFrame.EasingFunction>
<CubicEase EasingMode="EaseOut"/>
</EasingDoubleKeyFrame.EasingFunction>
</EasingDoubleKeyFrame> <EasingDoubleKeyFrame Value="" KeyTime="00:00:06">
<EasingDoubleKeyFrame.EasingFunction>
<BounceEase Bounces="" EasingMode="EaseOut"/>
</EasingDoubleKeyFrame.EasingFunction>
</EasingDoubleKeyFrame>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</StackPanel.Resources>
<Rectangle x:Name="myRectangle" MouseLeftButtonDown="Mouse_Clicked"
Fill="Blue" Width="" Height="" />
</StackPanel>
</UserControl>

文章转自:http://www.cnblogs.com/Joetao/articles/2054250.html

Silverlight动画学习笔记(三):缓动函数的更多相关文章

  1. WPF中的动画——(四)缓动函数

    缓动函数可以通过一系列公式模拟一些物理效果,如实地弹跳或其行为如同在弹簧上一样.它们一般应用在From/To/By动画上,可以使得其动画更加平滑. var widthAnimation = new D ...

  2. MySQL学习笔记(三):常用函数

    一:字符串函数 需要注意的几个细节: 1.cancat中有一个字符串为null,则结果为null. 2.left(str,x) 和 right(str,x)中x为null,则不返回任何字符串,不是nu ...

  3. 支持xcode6的缓动函数Easing以及使用示例

    支持xcode6的缓动函数Easing以及使用示例 用xcode6新建工程后,直接导致不支持之前的Easing缓动函数的代码,经过修改后就可以正常使用了,虽然比不上POP高大上的动画,但用缓动函数的动 ...

  4. JS动画之缓动函数分析及动画库

    上一篇讲了JS动画定时器相关知识,这一篇介绍下缓动函数及流行的动画库. 熟悉的图 实际使用 jquery animate()+jquery.easing插件的使用: $(selector).anima ...

  5. iOS基本动画/关键帧动画/利用缓动函数实现物理动画效果

    先说下基本动画部分 基本动画部分比较简单, 但能实现的动画效果也很局限 使用方法大致为: #1. 创建原始UI或者画面 #2. 创建CABasicAnimation实例, 并设置keypart/dur ...

  6. Typescript 学习笔记三:函数

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  7. ES6学习笔记<三> 生成器函数与yield

    为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...

  8. MYSQL学习笔记三:日期和时间函数

    MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...

  9. Android动画学习笔记-Android Animation

    Android动画学习笔记-Android Animation   3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...

随机推荐

  1. c++ 设计模式3 (重构技法 Template Method)

    1. 重构 面向对象设计模式是“好的面向对象设计”,所谓“好的面向对象设计”指的是那些可以满足 “应对变化,提高复用”的设计. 设计模式的要点是“寻找变化点,然后在变化点处应用设计模式,从而更好地理解 ...

  2. PathAnimation

    使用Blend制作PathAnimation 1:选中Path转换为运动路径 2:选择目标对象 PathAnimation使用动态的Path PathAnimation动画在播放的时候,PahtGeo ...

  3. 自定义PopupWindow弹出框(带有动画)

    使用PopupWindow来实现弹出框,并且带有动画效果 首先自定义PopupWindow public class LostPopupWindow extends PopupWindow { pub ...

  4. C++-copy constructor、copy-assignment operator、destructor

    本文由@呆代待殆原创,转载请注明出处. 对于一个类来说,我们把copy constructor.copy-assignment operator.move constructor.move-assig ...

  5. MVC框架 - AJAX支持

    Ajax是异步JavaScript和XML的一个简写形式.MVC框架包含了不显眼的Ajax内置支持,通过它可以使用辅助方法,在所有的视图添加代码来定义Ajax特性. 在MVC中此特征是基于jQuery ...

  6. 【阿里云产品公测】阿里云ECS服务器,PTS网站性能

    作者:阿里云用户321房产网 系统环境:CentOS 6.3 运行组件:Nginx + php + mysql + 缓存加速为eAccelerator 运行网站:基于phpcms开发模板:321房产网 ...

  7. 【Open Search产品评测】-- 淘点点:基于OpenSearch,轻松实现一整套O2O类搜索解决方案

     [Open Search产品评测]--  淘点点:基于OpenSearch,轻松实现一整套O2O类搜索解决方案   [使用背景] 我们淘点点团队应该可以算是内网首批使用opensearch来搭建应用 ...

  8. Android小项目之五 splash动画效果

    ------- 源自梦想.永远是你IT事业的好友.只是勇敢地说出我学到! ---------- 按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点 ...

  9. Java Script基础(十一) 表单验证

    一.表单验证的必要性: 表单验证在客户端和服务器端,客户端验证实际是直接调用JavaScript脚本对用户输入的数据进行验证:而服务器也同样可以实现数据验证,但是当服务器压力过大时,资源损耗会比较严重 ...

  10. python 基础——常用功能片段

    1. 元素去重 data = [1,2,3,4,4,5,5,6] res = set(data) 2. 元素去重排序 res = sorted(set(data)) 2. 打印重复的元素 res = ...