2012-04-16 46 views
15

在這個偉大的web page我找到了一個緩動算法的列表,可以給我的網頁添加很好的視覺吸引力。儘管如此,我發現了函數參數的簡要提及(參見下文),算法並不像我所希望的那樣工作。我可以請求解釋什麼值/範圍應該被輸入到下面提到的函數的參數中?緩解立方 - 函數參數解釋

參數列表:

  • T:當前時間 - 在這裏應該值0〜1,或者當前幀的實數?
  • B:起始值 - I假設,開始X或Y的對象的座標被移動
  • C:變化值 - 可以在這裏是1號的所有對所有幀的時間?
  • d:持續時間 - 總數的幀數?

Math.easeOutCubic = function (t, b, c, d) { t /= d; t--; return c*(t*t*t + 1) + b; };

應的值來遞增地添加到從所述函數而獲得的最後一個值,或者它們應該被添加到所述初始位置0?

+1

此鏈接非常詳細地解釋了我的問題:http://upshots.org/actionscript/jsas-understanding-easing – 2012-05-04 09:21:42

回答

15

您是對的,d爲持續時間,t爲當前時間。因此,t應該從0d

c是一個總的變化,應該等於end value - start value

  • t = 0,我們有c*(-1 + 1) + bb
  • 對於t = d我們c*(0 + 1) + bb + c

功能可以給任何FPS一樣,這取決於你如何經常更新的位置和調用函數。

+0

+1,您好,感謝您的重新申請。當我回家時,我會嘗試使用新的信息的公式。 ** b(起始值)也可以是一個負數嗎?**說,如果我想將物體從屏幕外移出,即從-50y到250y。我不知道這個公式是否也會以這種方式工作。 – 2012-04-16 10:09:25

+0

是的。只有當你將't'從0改爲某個負值時,它纔會按照預期的方式工作。 – kirilloid 2012-04-16 10:11:22

+0

我可以證實,在正確理解函數參數後,2d對象的行爲就像他們真正應該輕鬆實現的一樣。因此,我將您的答案確定爲*接受答覆*。 – 2012-04-16 20:53:30