
一套好的動畫架構是模型接口、使用者體驗和運作性能等多方面極難得到平衡的挑戰,即使是如今各種GUI平台提供的主流動畫架構這麼多年了依然問題不少,不是具體場景的性能問題,就是多元件同時動畫是莫名其妙各種bug,加上前面提到的我腦子不好使,實在記不住各種平台提供五發八門接口,是以我喜歡自己通過Model來達到控制View的動畫效果,這樣在動畫過程改變哪些屬性,改變的每個動畫幀改變的幅度,動畫之前之後的各種事件處理,多動畫的并行還是串行處理一切都可以在自己的掌控之中。
該例子近20種動畫Easing類型分布在不同的箭頭跑道上,當點選控制台的animation按鈕則開始啟動動畫,動畫過程箭頭将随着Easing的函數的邏輯決定前進的速度,這樣多組動畫同時進行時刻直覺的對不同動畫效果進行比較。箭頭的顔色也随着前進距離逐漸由白變紅,當達到終點時完全變紅。
示例還借助了3D的空間新軸線,在垂直軸方向動态用曲線表示Easing函數在目前時間點的函數值,是以大家可以直覺的體驗到Easing函數曲線的動态變化過程,同時曲線段的顔色也根據該時間段箭頭的前進距離由白變紅。
整個例子的運作效果給我感覺就像這個社會各式各樣的人生路,大家都逃不過出生和死亡,大家的起點是一樣的,終點的死亡也是誰也躲不過的,但不同人可以走出不同的人生曲線,easeNone:function(t){return t}這條是均勻的直線,給我感覺就是公務員之路,沒有大起大落,每年都會收入更好,但快不來隻能慢慢熬;elasticOut是最順利的年少就達到事業巅峰,當然後續也沒啥追求一路高位穩定等死;elasticOut是大器晚成類型,一路平平毫無建樹,終老之前也有幸快速達到了目的地;其他波折動蕩的類型如創業人生,每天你都不知道明天會發生什麼,你可能一直坐着過山車,時而在低谷時而在頂峰,不過怎麼樣隻要堅持繼續前進人人都會達到理想的終點:
Everything will be okay in the end. If it’s not okay, it’s not the end.