OK,我们已经讨论了单件和定时器了,该来点真格的了。这次我们来看看如何通过前面所述的定时器实现动画。我目前想到的动画有大小更改、Alpha 透明度更改、窗口位置更改等几种,后续会逐步加上。
我们先来思考动画的实质。动画其实就是通过定时器,一步步逼近一个期望结果的过程。我们期望的动画类是这样的:
1、接口简单、使用方便;
2、可扩展。比如我们后续加上新的动画类时不必太费力;
3、添加新动画类时不必操心动画共有的部分;(如计时器、回调等等)
一个动画有以下共有性质:
1、两次动画间的时间间隔(ms 为单位);
2、动画是否已经开启了;
3、整个动画展示完成后的回调(可选);
4、动画对象的管理。
第四个尤为重要,因为我们可能在一个如何一个函数(全局函数、类成员方法、某一个线程处理函数)中启用一个动画,如果还需手动管理动画对象的生命周期的话,那就太不Fashion了!(你可以思考下如果让你来设计,你会怎么设计这个动画的基类)