博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows Phone开发(42):缓动动画
阅读量:6297 次
发布时间:2019-06-22

本文共 3034 字,大约阅读时间需要 10 分钟。

原文:

前面在讨论关键帧动画的时候,我有意把几个带缓动动画的关键帧动画忽略掉,如EasingColorKeyFrame、EasingDoubleKeyFrame和EasingPointKeyFrame,其实为数不多,就这么几个。因为我希统一放到这节课程来吹一下缓动函数。

所谓缓动函数,就是我们在代数里面说的函数,说白了嘛,就是根特定的函数规则,用输入的值算出最终值,使得动画在两个关键帧之间不再是均衡过度,而是带有加/减速或其他效果,当然,还要取决于算法。

 

比如函数

 

所以,我们看出来了,缓动函数涉及复杂的数学运算,不过,灰常幸运的是,常用的缓函数MS已经为我们封装好了,这也是从WPF/Silverlight中迁移到WP的,集成性兼容性MD的好,所以,在使用的时候,大家可以轻松一大把了,因此,当你在练习的时候,记得冲一杯咖啡放在桌上,一边写代码一边品尝吧。呵呵,编程快乐,快乐编程。

 

如果你干过WPF或SL,这些东西你会觉得灰常Easy,我不是第一次强调了,所以说,基础很重要,把基础扎实了,无论你学习什么新玩意儿,都可以一通百通的,不管你信不信,反正我信了。

 

如何你对缓动函数没有一个直观的认识也不要紧,下面推荐大家一个游戏,很好玩的,不玩你学WP会后悔的。游戏地址:

记住要认真玩,这样你才会熟悉缓动函数与相关的类。

 

某致理名言说得好,“自己动手,丰衣足食”,还是老规矩,实例决定一切,动手干活吧。

 

演练一、请参考以下XAML代码构建你的UI。

后台C#代码启用动画。

private void gridLoaded(object sender, RoutedEventArgs e)        {            this.std.Begin();        }

现在,运行上面的示例,你会发现圆在下落的过程发生了两次回弹,动画才结束,而且一开始较慢,后来渐渐加速,这就是缓动函数所产生的效果。

 

 

演练二。

参考以下XAML代码创建UI界面。

 

在gridLoaded上右击,从弹出的菜单中选择“导航到事件处理程序”,在生成的方法中完成以下C#代码。

private void gridLoaded(object sender, RoutedEventArgs e)        {            std.Begin();        }

 

运行程序后,你会看到渐变填充中间黄色的色块在左右来回移动。

 

 

 

演练三:

请参照以下XAML建立UI。

分别在onShow和onHide方法上右击,从弹出的菜单中选择“导航到事件处理程序”,完成后台代码逻辑。

private void onShow(object sender, MouseButtonEventArgs e)        {            if (stdHide.GetCurrentState() != ClockState.Stopped)            {                stdHide.Stop();            }            stdShow.Begin();        }        private void onHide(object sender, RoutedEventArgs e)        {            if (stdShow.GetCurrentState() != ClockState.Stopped)            {                stdShow.Stop();            }            stdHide.Begin();        }

 

现在,运行程序,单击屏幕左下方的白色矩形,这时候屏幕下方会弹出一个面板,再点击面板上的按钮,面板会缩下去。

这样,使用动画,我们就做出了一个类似工具条的效果。

 

     

 

转载地址:http://rylta.baihongyu.com/

你可能感兴趣的文章
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>
flutter error
查看>>
Flask框架从入门到精通之模型数据库配置(十一)
查看>>
10年重新出发
查看>>
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>