在GDE-X开发过程中需要对有的动画片段进行集中管理——可以归类到任务池结构。
一些动画需要启动后,按照一定的帧顺序展现,在展现完毕之后从画布中清除并释放所占用资源。
silverlight中对于storyboard等提供completed事件,在动画结束的时候回调。
若这种动画会同时出现很多个,则回调的时候需要拿到具体其对应的那个释放函数。这样若单独维护其成员变量就行不通了。
如何让每个动画都在完成时找到自己对应的那个completed回调呢?用一个类封装一下就行了。 请看我封装的一个 AttackInfo 类,其功能为在某点出现一个攻击信息的动画,慢慢上浮并且消失。用于角色在受到攻击的时候头顶浮现数字或者其他信息。
效果如下图所示(Damage 1)
调用的时候传入其绘图根信息及其他具体的一些参数,就能实现这个动画的自管理了:
同理,比如DispatcherTimer等也可以这么用。