更新循环检查补间是否完成。如果没有,就更新补间。精灵的宽度和高度被设为补间的值,该值在0~256之间。
在上面的示例中,补间线性地从初始值变化到最终值。这意味着在2.5s后,补间的值变为128。补间并非必须是线性的,在变化到目标值的过程中,它们可以逐渐加快变化速度,或者逐渐减慢变化速度。通过使用一个时间函数表示位置,可以获得这种改变补间类型的能力。
public void function(double time)
{
// Create a position using the time value
return position;
}
实际的补间函数要比上面的代码复杂一些。下面的函数用于执行线性插值。
public static double Linear(double timePassed, double start, double distance,double duration)
{
return distance * timePassed / duration + start;
}
补间代码默认使用线性补间,但是可以添加许多不同的补间。图8-20显示了许多这样的补间。
Internet上有许多Flash补间函数,将它们转换成C#代码并不困难。