greensock是个很不错的类库,故转载了一些关于其中类使用方法的文章。
一、greensock_plugins常用功能中文簡介
http://bbs.9ria.com/thread-400375-1-1.html原文鏈接:http://www.contactu.cn/article.asp?id=133
因為在網上已經發現一些未注明出處的轉載,所以我特地在天地會重發此文,轉載請注明本人原創即可。--------------------------------------------------------------------------------------------------------
com.greensock.plugins是greensock庫中,與tweenLite/TweenMax等tween類搭配使用的組合功能。雖然號稱是插件,但是功能真的很強。有小而精練的功能,也有象運動模擬這樣的的大塊頭功能,這些都需要使用者慢慢的探索。這里只列出了自己常常使用的一些,讓大家能少讀幾行英文。
具體的使用方法、語法、如何包含庫等,可以閱讀原文示例: http://www.greensock.com/as/docs/tween/com/greensock/plugins/package-detail.html
這里還有一個更形象的的動畫演示及代碼生成器: http://www.greensock.com/as/swf/PluginExplorer-v11.swf
另外,JS版本的plugins庫也已經有了,文檔在這里: http://api.greensock.com/js/ ,相比AS來說,只能說太弱太弱了??梢韵胍?#xff0c;基于JS的動畫開發,還在遠遠的追趕之中。
二、TweenMax使用方法記錄
轉自:http://bbs.9ria.com/thread-150136-1-1.html
| greensock緩動類包之TweenMax 1~了解TweenMax類 ? ? TweenMax建立在TweenLite核心類及TweenFilterLite基礎之上,新增功能: ? ? 1) 進行貝塞爾緩動 ? ? 2)連續的緩動(序列化的緩動) ? ? 3)對對象數組中的對象進行同意的緩動使用allTo()或allFrom(); ? ? 4)緩動中的暫停/繼續功能,使用pause()和resume()方法,或“paused”屬性 ? ? 5)跳轉至緩動的任何時段,使用“progress”屬性。輸入一個0~1之間的數值 ? ? 6)對16進制的顏色進行緩動,使用hexColors屬性 ? ? 7)獲取緩動效果的實例數組,該數組中包括了加在一個指定目標對象上的所有的緩動效果的實例,TweenMax.getTweensOf(mc);如果該mc應用了多個緩動效果,則返回一個數組,數組中是不同的緩動效果的實例 ? ? 8)獲取TweenMax、TweenLite和TweenFilterLite的實例數組,使用靜態函數getAllTweens(); ? ? 9)種植所有的緩動 ? ? 10)暫停/繼續全部的緩動 2~常用方法 ? ? ?1)public function TweenMax(target:Object, duration:Number, vars:Object) ? ? 描述:構造方法 ? ? ?target:目標對象;duration:持續的時間(單位:秒);vars:包含想要緩動的的屬性值 ? ???vars:緩動的常用屬性包括{ ? ? alpha:Number:目標對象在緩動結束時的alpha ? ? delay:Number:延遲緩動 ? ? ease:Function:緩動函數 ? ? easeParames:Array:緩動函數中的參數 ?? ? autoAlpha:Number:用來代替alpha屬性,可獲得一些附加小伙,實現透明度緩動效果 ?? ? volume:Number:改變MovieClip或者SoundChannel的音量,將緩動結束時的音量值調整為指定的值 ?? ? tint:Number:改變可顯示對象的色調/顏色 ?? ? frame:Number:將MovieClip緩動到指定的幀頻 ?? ? bezier:Array:Bezier緩動,允許你以非線醒的方式進行緩動 ? ? bezierThrough:Array:貝賽爾曲線要經過的位置點 ?? ? orientToBezier:Array:使MovieClip自動調整自身的方向,使之符合貝塞爾路徑[x,y,rotation,ang](rotation:旋轉屬性,ang:旋轉的度數) ? ? hexColors:Object:緩動指定對象中相應顏色屬性的值(TweenMax.to(my_obj,{hexColors:{mycolor:0Xff0000}})) ? ? onStart:Function:在緩動開始時想要執行的某個函數 ?? ? onStartParams:Array:緩動開始時要執行函數的參數 ?? ? onUpdate:Function:緩動過程中,每次更新屬性值時,要執行的函數 ? ? onUpdateParams:Array:同上。。 ? ? onComplete:Function:緩動結束時要執行的函數 ?? ? onCompleteParams:Array:同上。。?? ? ?? ? renderOnStart:Boolean:阻止緩動的渲染效果直到緩動真正開始 ? ? overwrite:Boolean:緩動效果是否可以被覆蓋 ? ? blurFilter:Object:應用模糊濾鏡,需要傳遞一個具有下列屬性的對象作為參數:blurX(橫向的模糊度),blurY(縱向的模糊度),quality(品質,默認值為2) ? ? glowFilter:Object:應用發光濾鏡,需要傳遞一個帶有以下屬性的對象:alpha,blurX,blurY,color,strength(強度),quality,inner(內側發?? ? ?? ? ?? ? 光),knockout(挖空) ?? ? colorMatrixFilter:Object:應用顏色矩陣濾鏡,需要傳遞一個帶有以下屬性的對象:colorize(色調),amount(總量),contrast(對比度),brightness(亮度),saturation(飽和度),hue(色相),threshold(閥值),relative(相關性),matrix(顏色矩陣) ?? ? dropShadowFilter:Object:應用陰影濾鏡,需要傳遞一個帶有以下屬性的對象:alpha,angle(角度),blurX,blurY,color,distance(距離),strength,quality ?? ? bevelFilter:Object:應用斜角濾鏡,需要傳遞一個帶有以下屬性的對象:angle,blurX,blurY,distance,hightlightAlpha(高亮區的透明度),highlightColor(高亮區的顏色),shadowAlpha(陰影區的透明度),shadowColor(陰影區的顏色),strength(強度),quality ?? ? progress:Number:緩動進程0~1 ?? ? paused:Boolean:是否停止緩動 2)allTo(targets:Array, duration:Number, vars:Object):Array 返回的是一個數組保存了創建的所有TweenMax Object。 3)?allFrom(targets:Array, duration:Number, vars:Object):Array 跟allTo一樣,只是定義的是運動對象的初始狀態,運動到當前狀態。 4)?complete(skipRender:Boolean = false, suppressEvents:Boolean = false):void ? ?強制TweenMax到最后結束部分。如果第一個參數設為true,則不會渲染,TweenMax將停在調用那一刻。如果第二個參數設為true則不會觸發onCompelte,onUpdate等事件。 5)?delayedCall(delay:Number, onComplete:Function, onCompleteParams:Array = null, useFrames:Boolean = false):TweenMax? ? ??延遲執行函數 6)getTweensOf(target:Object):Array ?返回運動物體正在運行的的TweenMax Object 7)isTweening(target:Object):Boolean ?判斷是否正在緩動 8)?updateTo(vars:Object, resetDuration:Boolean = false):void ?可以在運行中新增或改變原有的屬性變化值。第二個參數設為false時將不重播緩動,而繼續緩動到新的值;設為true將中斷并重播緩動。 |
三、Tweenlite的用法
轉自:http://blog.csdn.net/jinglikeblue/article/details/9134433
TweenLite 是一個緩動的類包,功能強大,并且易于使用,為了更多的(E文欠佳的、初學的)朋友了解它,使用它,特此翻譯了一下TweenLite 類文檔中的說明文件,主要是對參數的說明,希望對大家有用。
描述:
緩動。 我們都在做。我們很多人都知道除了 Adobe’s Tween 類之外,還有很多更好的動畫引擎,(比如 Tweener). 每種引擎都有它們各自的優缺點。
最近幾年,為了得到一個更緊湊的,跑得更快,效率更高的引擎,我創建了 TweenLite (我無法接受其它的一些引擎帶來的文件尺寸上的負擔).它很快就融入到我的所有工作中。我告訴其它人,讓大家能夠從中獲益,最終,我將它發布了出來。在過去的幾年中,TweenLite越來越受歡迎,超乎了我的想像.
基于此,我又添加了一些新的功能,并且盡量保持這個文件的尺寸,讓它小于3K。 TweenFilterLite 擴充了 TweenLite 并且加入了濾鏡緩動,包含了 ColorMatrixFilter 的一些效果,比如飽和、對比、增亮、色調,甚至是著色,但文件的尺寸始終沒有超過3K。與 TweenLite 的做法相似,提供有AS2版和AS3版的類包下載。
TweenMax 比 TweenFilterLite 增加了更多的特性,包含 bezier 緩動,暫停/恢復,順序執行等等。(見 www.TweenMax.com)
我猜你會想“如果這個是‘輕量級的’,那么它一定會丟掉很多特性,讓我用的時候會有點擔心”。這種想法是對的,在這里缺少一些其它緩動引擎所包含的特效,但是我可以肯定的說,在過去幾年我的工程(很多獲獎的 flash 程序以及500強企業的項目中)中,我幾乎一直都在用它,而它從沒有讓我失望過。
我還真沒發現過我還需要其它的功能。你可以對任何的屬性(包括 DisplayObject 對象的音量和顏色)使用緩動函數,內置的延遲時間,回調函數,以及傳遞參數給這些回調函數,甚至根據數組進行緩動,統統只在一行代碼中完成。如果你需要更多的特效,你可以裝上TweenFilterLite 或者 TweenMax來用用。
我也從來沒有發現比這個更快的引擎。不同引擎執行效率的比較,請訪問 http://blog.greensock.com/tweeing-speed-test/.
TweenLite參數說明:
1) $target : Object – 作為目標的對象, MovieClip或者其它對象
2) $duration : Number – 動畫的時間長度(單位:秒)
3) $vars : Object – 對象,通過屬性值,來存貯各種屬性參數用于緩動。(如果你使用 TweenLite.from() 方法,這里的參數表示緩動的初始值)
該對象所具有的屬性:
alpha: alpha 目標對象應該完成 (或開始,當使用 TweenLite.from()時)的透明度級別.如果 target.alpha 是1,當緩動被執行的時候,你指定參數為 0.5,它將把透明度從 1 緩動到 0.5.
x: 改變 MovieClip的 x 位置,把這個值設置成你希望的 MovieClip 的結束位置(如果你使用的是 TweenLite.from()這個值表示開始位置).
( y scaleX scaleY rotation 等屬性不再重復說明)
特別的屬性 (**可選的**):
delay : Number – 延遲緩動 (以秒為單位).
ease : Function – 緩動函數. 例如,fl.motion.easing.Elastic.easeOut 函數。默認的是 Regular.easeOut函數。
easeParams : Array – 用來存貯緩動公式所需要的額外數據. 當使用 Elastic 公式并且希望控制一些額外的參數,比如放大系數和緩動時間。大多數的緩動公式是不需要參數的,因此,你不需要給其它的緩動公式傳遞參數。
autoAlpha : Number – 用它來代替 alpha 屬性,可以獲得一些副加的效果,比如當 alpha 值緩動到 0時,自動將 visible 屬性改為 false。當緩動開始前,autoAlpha 大于 0時,它將會把 visible 屬性變成 true 。
visible : Boolean – 在緩動結束時,想要指定 DisplayObject 的 visible 屬性,請使用這個參數。
volume : Number – 對 soundTransform (MovieClip/SoundChannel/NetStream 等)對象中的volume屬性(音量大小)進行緩動
tint : Number – 改變 DisplayObject 的顏色,設置一個16進制顏色值之后,當緩動結束時,目標對象將被變成這個顏色,(如果使用的是TweenLite.from(),這個值將表示目標對象開始緩動時的顏色)。舉個例子,顏色值可以設定為: 0xFF0000。
removeTint : Boolean – 要移除 DisplayObject 顏色,將這個參數設成 true 。
frame : Number – 將 MovieClip 緩動到指幀頻。
onStart : Function – 在緩動開始時想要執行某個函數,就將函數的引用(通常是函數名)放到這里。如果緩動是帶延遲的,那么在緩動開始前該函數不會被執行。
onStartParams : Array – 為緩動開始時要執行的函數傳遞參數。(可選的)
onUpdate : Function – 緩動過程中,每次更新時調用這里指定的函數(緩動開始后,每一幀被觸發一次),
onUpdateParams : Array – 給 onUpdate 參數指定的函數傳遞參數 (可選的)
onComplete : Function – 緩動結束時執行的函數。
onCompleteParams : Array – 給 onComplete 參數指定的函數傳遞參數 (可選的)
persist : Boolean – 值為 true 時,TweenLite 實例將不會自動被系統的垃圾收集器給收走。但是當新的緩動出現時,它還是會被重寫(overwritten)默認值為 false.
renderOnStart : Boolean – 如果你使用帶有延遲緩動的 TweenFilterLite.from() ,并且阻止緩動的渲染(rendering )效果,直到緩動真正開始,將這個值設為 true.默認情況下該值為 false ,這會讓渲染效果立即被執行,甚至是在延遲的時間還沒到之前。
overwrite : int – 當前的緩動被創建以后,通過這個參數可以限制作用于同一個對象的其它緩動,可選的參數值有:
- 0 (沒有): 沒有緩動被重寫。這種模式下,運行速度是最快的,但是需要注意避免創建一些控制相同屬性的緩動,否則這些緩動效果間將出現沖突。
- 1 (全部): (這是默認值,除非 OverwriteManager.init() 被調用過)對于同一對象的所有緩動在創建時將會被完全的覆蓋掉。
TweenLite.to(mc, 1, {x:100, y:200});
TweenLite.to(mc, 1, {x:300, delay:2}); //后創建的緩動將會覆蓋掉先前創建的緩動,(可以起到這樣的作用:緩動進行到一半時被中斷,執行新的緩動 譯者注)
- 2 (自動): (當 OverwriteManager.init() 被執行后,會根據具體的屬性值進行選擇)只覆蓋對同一屬性的緩動。
TweenLite.to(mc, 1, {x:100, y:200});
TweenLite.to(mc, 1, {x:300}); //only “x” 屬性的緩動將被覆蓋
- 3 (同時發生): 緩動開始時,覆蓋全部的緩動。
TweenLite.to(mc, 1, {x:100, y:200});
TweenLite.to(mc, 1, {x:300, delay:2}); //不會覆蓋先前的緩動,因為每二個緩動開始時,第一個緩動已經結束了。
舉例:
將實例名為 “clip_mc” 的 MovieClip 透明度降到 50% (0.5) ,并將它 x 軸位置移動到 120 ,將音量將到 0,緩動總共用時 1.5 秒,代碼如下:
import gs.TweenLite;
TweenLite.to(clip_mc, 1.5, {alpha:0.5, x:120, volume:0});
如果希望使用更高級的緩動函數在 5 內,將 alpha 變到 0.5,將 x 移動 到 120 ,使用 “easeOutBack” 彈性函數,緩動整體延遲 2 秒發生,并且在緩動結束時,執行 “onFinishTween” 函數,并且為這個函數傳遞幾個參數,(一個數值 5 以及對 clip_mc 的引用),代碼如下:
import gs.TweenLite;
import fl.motion.easing.Back;
TweenLite.to(clip_mc, 5, {alpha:0.5, x:120, ease:Back.easeOut, delay:2, onComplete: onFinishTween, onCompleteParams:[5, clip_mc]});
function onFinishTween(argument1:Number, argument2:MovieClip):void {
trace(“The tween has finished! argument1 = ” + argument1 + “, and argument2 = ” + argument2);
}
如果你的舞臺上的 MovieClip 已經停在了它的結束位置,你只想讓它花上5秒種回到這個位置,(只需要改變 y 屬性,比當前位置高 100 像素的位置,讓它從那里下落), 代碼如下(這次使用的是 TweenLite.from 譯者注):
import gs.TweenLite;
import fl.motion.easing.Elastic;
TweenLite.from(clip_mc, 5, {y:”-100″, ease:Elastic.easeOut});
說明:
- TweenLite類會讓你的 Flash 文件增加 3kb大小。
- 給參數值加上引號,表示對指定的屬性進行相應操作。比如,使用 TweenLite.to(mc, 2, {x:”-20″}); 它將 mc.x 向左移動 20 像素,與此相同效果的代碼是:TweenLite.to(mc, 2, {x:mc.x – 20});
- 你可以用別的緩動函數替換 TweenLite 默認的緩動函數: Regular.easeOut.
- 必須使用 Flash Player 9 或之后版本的播放器 (ActionScript 3.0)
- 可以對任何 MovieClip 使用 “volume” 緩動,就比如:TweenLite.to(myClip_mc, 1.5, {volume:0});
- 可以將 MovieClip 設定成某種顏色,使用 “tint” 參數,比如: TweenLite.to(myClip_mc, 1.5, {tint:0xFF0000});
- 想要對數組內容進行緩動,將數值放到一個叫 endArray 的數組中即可,例如:
var myArray:Array = [1,2,3,4];
TweenLite.to(myArray, 1.5, {endArray:[10,20,30,40]});
- 可以在任何時候終止緩動,使用 TweenLite.killTweensOf(myClip_mc); 函數。如果想強制終止緩動,可以傳遞一個 true 做為第二個參數,比如
TweenLite.killTweensOf(myClip_mc, true);
- 取掉延遲回調函數,用 TweenLite.killDelayedCallsTo(myFunction_func);這項功能可以用來控制回調函數的優先級。
- 使用 TweenLite.from() 方法,可以使用對象從別的位置回到當前的位置。例如,你可以將對象在舞臺上擺放整齊(緩動結束時的位置),然后利用
緩動,讓它們跑到那個位置上去,你可以將緩動的初始位置值 x 或 y 或 alpha (或者其它你需要的屬性)當做參數傳遞給這個方法函數。
TweenLite 下載鏈接:
http://www.greensock.com/ActionS … S3/TweenLiteAS3.zip
下載下來的類包中,有一個 TweenLiteAS3_Sample_1.swf ,初學者可以用它來觀察各種緩動的效果,并且直接得到相關的執行代碼。算是一個可視化設計的工具,不要錯過。
下載到類包以后,解壓縮到一個目錄比如:d:\AS3Class ,在flash9 的首選參數->ActionScript->ActionScript3.0設置中添加類目錄,d:\AS3Class\TweenLiteAS3 即可正確引用到相關的類。
應用舉例:
import gs.TweenLite;
import gs.easing.*;
stage.addEventListener(MouseEvent.CLICK, onCK);
function onCK(evt) {
TweenLite.to(mc, 0.5, {x:mouseX, y:mouseY, rotation:360});
}
在舞臺上點擊,會讓mc 元件旋轉并跑動到鼠標位置。
總結
以上是生活随笔為你收集整理的greensock是个很不错的类库,故转载了一些关于其中类使用方法的文章。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一讲 数学方法论引论
- 下一篇: GreenSock