AS3.0常用第三方類庫:TweenMax

來源:互聯網
上載者:User
TweenMax可能是很多人都用的,包括我···
  但是最近發現大量的運用就總會產生這樣或那樣的"怪事",有時用代碼來做緩動有時又用TweenMax造成了代碼的 混亂,而且除了單調的TweenMax.to()等幾個函數外,貌似還有很多這樣那樣fun stuffs。對於動畫ease的控制,自己除了一個Back就不知道其他了。
  總之一片慘淡···
  所以趁著這個機會好好總結一下:
   一,主要代碼結構:
  com.greensock包裡面,首先最主要的就是TweenMax.as;然後一個常用的是 com.greensock.easing.*;裡麵包含了15個緩動,下文再一一介紹;另外一個是 com.greensock.events.TweenEvent,不過感覺不太常用;
  每一個TweenMax方法大多都會返回一個TweenMax的執行個體 -- 即下文所說的TweenMax Object。一個TweenMax需要三個參數,即 $target:Object, $duration:Number, $vars:Object ,頭兩個即運動物體,時間,第三個參數儲存了所有的參數。
   二,TweenMax主類:
  這裡分幾個大塊來介紹,分別是:第三個參數特有屬性(29個),PlugIn(17個),公用屬性(10個),公用方法(20個)。
   1,第三個參數特有屬性(29個):
  這29個參數可以直接傳入第三個OBJECT參數中,不會增加檔案的大小。
  (1) delay : Number: 延遲開始,在TweenMax動畫開始前延遲的秒數。
  (2) useFrames : Boolean: 當設定為True時,對這個TweenMax Object的時間計算方式就是基於幀frame的。
  (3) ease : Function: 緩動方式。可以使用com.greensock.easing包下的easing 函式。
  (4) easeParams : Array: easing 函式參數。某些easing 函式需要傳入一些參數來進行額外的控制。
  (5) onInit : Function: 初始化函數。在TweenMax開始前,所有參數還沒被傳入TweenMax Object時觸發。可以用來初始化運動對象的狀態。
  (6) onInitParams : Array: 初始化函數參數。
  (7) onStart : Function: 開始函數。跟初始化函數不同,開始函數在TweenMax Object的值改變之後才觸發,而且不同於初始化函數。開始函數可以被觸發多次。
  (8) onStartParams : Array: 開始函數參數。
  (9) onUpdate : Function: 更新函數。當每次TweenMax Object數值更新的時候觸發。
  (10) onUpdateParams : Array: 更新函數參數。
  (11) onComplete : Function: 完成函數。當TweenMax Object完成緩動後觸發。
  (12) onCompleteParams : Array: 完成函數參數。
  (13) onReverseComplete : Function: 回放完成函數。當TweenMax Object處於回放狀態,並且回到起點時觸發。
  (14) onReverseCompleteParams : Array: 回放完成函數參數。
  (15) onRepeat : Function: 重放函數。當TweenMax Object每次重放的時候觸發。
  (16) onRepeatParams : Array: 重放函數參數。
  (17) immediateRender : Boolean: 立即渲染。一般來說,TweenMax Object會在下一個渲染周期(也就是下一幀)被渲染到情境中。如果想強制立即渲染,可以把這個參數設為true。另外如果想阻止一個運動周期為0的運動物體被渲染,也可以把這個參數設為false。
  (18) paused : Boolean: 暫停。這個很好理解,設為true時TweenMax Object就會暫停緩動。
  (19) reversed : Boolean: 反轉。不知道為什麼跟說明文檔裡的不同。我的理解是將TweenMax Object的緩動反過來播放。
  (20) overwrite : int: 覆蓋處理。定義了當對同一個物體使用TweenMax時發生衝突的處理方法。有6種模式。
  模式0:NONE。不做任何處理。效能Excellent。
  模式1:ALL_IMMEDIATE。設為該模式的TweenMax Object運動具有最高的優先順序,會覆蓋掉運動物體之前所有的緩動。新的TweenMax Object建立時覆蓋舊的TweenMax Object。效能Excellent。
  模式2:AUTO。是TweenMax的預設模式(原來我之前的痛苦都是因為它···)。在新的TweenMax Object第一次渲染時覆蓋重複的屬性(模式1是覆蓋掉全部屬性)。只要不是具有太多的屬性需要覆蓋,效能還是不錯的。
  模式3:CONCURRENT。這個單詞的意思是“同時發生”。跟模式1很相似。唯一的不同是他只覆蓋掉正在啟動並執行TweenMax Object。而放過其他的沒有啟動的TweenMax Object。效能Very Good。
  模式4:ALL_ONSTART。也是跟模式1非常像。兩點不同是他是在TweenMax Object第一次渲染時才覆蓋掉其他所有的TweenMax Object,而且這個會把在他之後建立的TweenMax Object也覆蓋掉。效能Very Good。
  模式5:PREEXISTING。這個單詞一看上去很迷糊,其實是pre-existing,囧。唯一的不同是他是在TweenMax Object第一次渲染時才覆蓋掉其他所有的TweenMax Object。效能Very Good。
  如果想改變全域的TweenMax Object預設overwrite屬性,可以調用哪個OverWriteManager類的全域方法init(),即:

  OverwriteManager.init(OverwriteManager.XXXX);
  (21) repeat : int: 迴圈次數。設定為-1為無限迴圈。
  (22) repeatDelay : Number: 迴圈延遲的時間。
  (23) yoyo : Boolean:YOYO球。 另外一種迴圈的方式。像我們玩的YOYO球一樣,從頭到尾,再從尾到頭的往返運動。PS:要與repeat同時設定。
  (24) onStartListener : Function: 註冊一個TweenEvent的監聽,跟開始函數在同一時刻派發。
  (25) onUpdateListener : Function: 註冊一個TweenEvent的監聽,跟更新函數在同一時刻派發。
  (26) onCompleteListener : Function: 註冊一個TweenEvent的監聽,跟完成函數在同一時刻派發。
  (27) onReverseCompleteListener : Function: 註冊一個TweenEvent的監聽,跟回放完成函數在同一時刻派發。
  (28) onRepeatListener : Function: 註冊一個TweenEvent的監聽,跟重放函數在同一時刻派發。
  (29) startAt : Object: 重設初始值。一般TweenMax Object使用運動物體的目前狀態來做初始值。但是可以使用這個參數重新設定運動物體的初始狀態。
  


   2,PlugIn(17個)
  PlugIn與"第三個參數特有屬性"其實是同一樣東西。所不同的是他會顯著增加組建檔案的大小。所有PlugIn 都關閉的情況下TweenMax的大小為8.8k(TweenLite為4k)。當所有的PlugIn都使用後(包括收費的)TweenMax會膨脹到 25.9k。(話說回來怎麼關閉我也不清楚,求指教)
  這裡介紹的是TweenMax文檔裡提到的17個PlugIn(我看了包裡面竟然有30個,囧···不管他)。
  (1) autoAlpha : Number: 跟alpha幾乎一樣,不同的是他在alpha==0時會自動將visible也設為false,而在alpha>0時將visible設為true。
  (2) visible : Boolean: 在TweenMax Object的最後設定物體的visible屬性。
  (3) volume : Number: 緩動音量的。需要運動物體有soundTransform屬性,例如MovieClip,SoundChannel,NetStream等。
  (4) tint : Number: 顏色。將整個運動物體變成對應的顏色。可以使用十六進位值。
  (5) removeTint : Boolean: 設為true時,去掉已經使用的tint屬性。
  (6) frame : Number: 當運動物體是MovieClip時,緩動內部的時間軸。
  (7) bezier : Array: 貝茲路徑。這個有點不清楚,好像數組裡的奇數個點(Object{x:xxx,y:xxx})為貝茲路徑的控制點,偶數個點為運動的終點。
  (8) bezierThrough : Array: 比貝茲路徑更直觀,數組裡奇數的點為曲線中要穿過的點。
  (9) orientToBezier :  Array (or Boolean):指向運動。一個比較常用的功能是在進行曲線運動時,物體的朝向一般要對應運動的方向(例如汽車之類的運動)。對於2D可以簡單的傳值 true。對於3D或者需要更多的靈活性,可以傳入數組4個參數,x,y,rotation,需要增加的度數, 註:頭3個參數不是具體的數值,而是需要變化的參數,頭兩個是位置屬性,第三個是旋轉參數,第四個參數為可選。
  (10) hexColors : Object: 16進位緩動。 TweenMax在對16進位數進行緩動時會有不平滑的現象出現,這是就需要使用hexColors參數進行緩動。hexColors參數是一個對象,所 以需要把要進行緩動的參數傳入其中,即:TweenMax.to(target,2,{hexColors:{mcParas:newColor}});其中mcParas是target的屬性,newColor是要緩動到的新的16進值。
  (11) shortRotation : Object: 短旋轉。用這個代替rotation的話,TweenMax會自動按最短的旋轉方向來進行旋轉,而不是按照AS3預設的以逆時針方向進行旋轉。記得要按Object的方式傳入。
  (12) roundProps : Array: 取整數。對於想要在變化中始終取整的值,可以把屬性的字元形式放到這個數組中。例:TweenMax.to(target,2,{x:200,y:200,roundProps:["x","y"]});
  (13) blurFilter:Object:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.