我不知道爲什麼轉換對我來說似乎很生澀。我做了一些分析並繪製了過渡曲線,沒有看到任何明顯的東西。
我最終建立了自己的過渡,這對我來說似乎產生了更平滑的視覺效果。
// Requirements for a transition function are:
// - it should be continuous on the interval [0,1]
// - f(0) = 0, and f(1)= 1 . f(x) between zero and 1
// may fall out of that range.
//
// To guarantee the f(x)=1 , I produce a fn for which f(0)=0,
// and f(1) is non-zero. Then I produce a second function which is the
// normalized transform of that, by simply using g(x)=f(x)/f(1), and
// use g(x) instead of f(x) as the transition function.
// This guarantees that g(1) = 1.
//
function fn1(x) {
return (Math.pow(x + 0.4, 3) * Math.sin((x - 0.5)*3.1415926));
}
function g(x) {
return fn1(x)/normalizationFactor;
}
normalizationFactor = fn1(1);
transitionCustom = new Fx.Transition(g);
我看了演示頁面,它對我來說很順利。我在各種應用程序中遇到了性能不佳的Fx.Transitions庫,在其他程序中它工作正常。在對代碼進行任何更改之前,我會在幾個不同的系統上進行測試,並查看您記下的問題是否已本地化到您正在測試的計算機上。另外請注意您的瀏覽器的內存消耗 - 如果您已經運行了一段時間,並且內存中有引用的垃圾對象,瀏覽器可能會膨脹並對腳本性能產生負面影響。 –