更新循環(huán)檢查補(bǔ)間是否完成。如果沒有,就更新補(bǔ)間。精靈的寬度和高度被設(shè)為補(bǔ)間的值,該值在0~256之間。
在上面的示例中,補(bǔ)間線性地從初始值變化到最終值。這意味著在2.5s后,補(bǔ)間的值變?yōu)?28。補(bǔ)間并非必須是線性的,在變化到目標(biāo)值的過程中,它們可以逐漸加快變化速度,或者逐漸減慢變化速度。通過使用一個(gè)時(shí)間函數(shù)表示位置,可以獲得這種改變補(bǔ)間類型的能力。
public void function(double time)
{
// Create a position using the time value
return position;
}
實(shí)際的補(bǔ)間函數(shù)要比上面的代碼復(fù)雜一些。下面的函數(shù)用于執(zhí)行線性插值。
public static double Linear(double timePassed, double start, double distance,double duration)
{
return distance * timePassed / duration + start;
}
補(bǔ)間代碼默認(rèn)使用線性補(bǔ)間,但是可以添加許多不同的補(bǔ)間。圖8-20顯示了許多這樣的補(bǔ)間。
Internet上有許多Flash補(bǔ)間函數(shù),將它們轉(zhuǎn)換成C#代碼并不困難。