W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
AnimationActions 用來調(diào)度存儲在AnimationClips中的動畫。
說明: AnimationAction的大多數(shù)方法都可以鏈式調(diào)用
在使用手冊的“下一步”章節(jié)中,“動畫系統(tǒng)”一文對three.js動畫系統(tǒng)中的不同元素作出了概述。
mixer - 被此動作控制的 *動畫混合器*
clip - *動畫剪輯* 保存了此動作當中的動畫數(shù)據(jù)
localRoot - 動作執(zhí)行的根對象
說明: 不要直接調(diào)用這個構(gòu)造函數(shù),而應該先用AnimationMixer.clipAction實例化一個AnimationAction,因為這個方法提供了緩存以提高性能。
如果 clampWhenFinished 值設為true, 那么動畫將在最后一幀之后自動暫停(paused)
如果 clampWhenFinished 值為false, enabled 屬性值將在動作的最后一次循環(huán)完成之后自動改為false, 那么這個動作以后就不會再執(zhí)行。
默認值為false
說明: 動作如果被中斷了,clampWhenFinished將無效 (只有當最后一次循環(huán)執(zhí)行完畢之后才能起效)
enabled 值設為false會禁用動作, 也就是無效.默認值是true
當enabled被重新置為true, 動畫將從當前時間(time)繼續(xù) (將 enabled 置為 false 不會重置此次動作)
說明: 將enabled置為true不會讓動畫自動重新開始。只有滿足以下條件時才會馬上重新開始: 暫停(paused)值為false, 同時動作沒有失效 (執(zhí)行停止(stop)命令或重置(reset)命令, 且權重(weight)和時間比例(timeScale)都不能為0
循環(huán)模式 (可以通過setLoop改變)。默認值是 THREE.LoopRepeat (重復repetitions次數(shù)無窮)
必須是以下值之一:
THREE.LoopOnce - 只執(zhí)行一次
THREE.LoopRepeat - 重復次數(shù)為repetitions的值, 且每次循環(huán)結(jié)束時候?qū)⒒氐狡鹗紕幼鏖_始下一次循環(huán)。
THREE.LoopPingPong - 重復次數(shù)為repetitions的值, 且像乒乓球一樣在起始點與結(jié)束點之間來回循環(huán)。
paused置為true會通過將動作的有效時間比例改為0來使動作暫停執(zhí)行。默認值是false
整個動作過程動畫剪輯(AnimationClip)執(zhí)行的次數(shù),可以通過setLoop修改。默認值是Infinity
如果循環(huán)模式(loop mode)值被設置為THREE.LoopOnce,repetitions值將會無效。
動作開始的時間點 (單位是秒, 從0開始計時).
這個值被限定在 0到clip.duration(根據(jù)循環(huán)狀態(tài))范圍之內(nèi). 可以通過改變時間比例(timeScale) (使用 setEffectiveTimeScale 或者 setDuration)來將它相對于全局的混合器縮放.
時間(time)的比例因子. 值為0時會使動畫暫停。值為負數(shù)時動畫會反向執(zhí)行。默認值是1。
關于timeScale屬性/方法 (不同于 time) 有: getEffectiveTimeScale, halt, paused, setDuration, setEffectiveTimeScale, stopWarping, syncWith, warp.
動作的影響程度 (取值范圍[0, 1]). 0 (無影響)到1(完全影響)之間的值可以用來混合多個動作。默認值是1
關于weight的屬性/方法有: crossFadeFrom, crossFadeTo, enabled, fadeIn, fadeOut, getEffectiveWeight, setEffectiveWeight, stopFading.
啟用平滑插值,無須單獨剪輯開始、循環(huán)和結(jié)束。默認值是true
啟用平滑插值,無須單獨剪輯開始、循環(huán)和結(jié)束。默認值是true
在傳入的時間段內(nèi),讓此動作淡入(fade in),同時讓另一個動作淡出。此方法可鏈式調(diào)用。
如果warpBoolean值是true, 額外的 warping (時間比例的漸變)將會被應用。
說明: 與 fadeIn/fadeOut一樣, 淡入淡出動作開始/結(jié)束時的權重是1.
在傳入的時間段內(nèi), 讓此動作淡出(fade out),同時讓另一個動作淡入。此方法可鏈式調(diào)用。
如果warpBoolean值是true, 額外的 warping (時間比例的漸變)將會被應用。
說明: 與 fadeIn/fadeOut一樣, 淡入淡出動作開始/結(jié)束時的權重是1.
在傳入的時間間隔內(nèi),逐漸將此動作的權重(weight)由0升到1。此方法可鏈式調(diào)用。
在傳入的時間間隔內(nèi),逐漸將此動作的權重(weight)由1降至0。此方法可鏈式調(diào)用。
返回有效時間比例(考慮當前的變形狀態(tài)和paused值).
返回影響權重(考慮當前淡入淡出狀態(tài)和enabled的值).
返回存有此動作的動畫數(shù)據(jù)的剪輯
返回負責完成此動作的混合器
返回執(zhí)行此動作的根對象
在傳入的時間間隔內(nèi),通過從當前值開始逐漸降低時間比例(timeScale)使動畫逐漸減速至0。此方法可鏈式調(diào)用。
返回當前此動作的時間(time)是否正在流逝除了在混合器中被激活之外 (參見isScheduled)必須滿足以下條件才會返回true: paused值等于false, enabled值為true, timeScale值不為0, 而且沒有安排延時啟動(startAt).說明 isRunning 為true并不意味著此動畫一定會切實地被看到。僅當權重(weight)被設置為非零值時才是這種情況。
如果動作是在混合器中被激活的,返回true。說明: 這并不意味著動畫正在執(zhí)行中 (需要額外判斷isRunning值)
讓混合器激活動作。此方法可鏈式調(diào)用。說明: 激活動作并不意味著動畫會立刻開始: 如果動作在此之前已經(jīng)完成(到達最后一次循環(huán)的結(jié)尾),或者如果已經(jīng)設置了延時 啟動(通過 startAt),則必須先執(zhí)行重置操作(reset)。 一些其它的設置項 (paused=true, enabled=false, weight=0, timeScale=0) 也可以阻止動畫的開始。
重置動作。此方法可鏈式調(diào)用。該方法會將暫停值 paused 設為false, 啟用值enabled 設為true,時間值 time設為0, 中斷任何預定的淡入淡出和變形, 以及移除內(nèi)部循環(huán)次數(shù)以及延遲啟動。說明: 停止方法stop內(nèi)調(diào)用了重置方法(reset), 但是 .reset不會調(diào)用 .stop。 這就表示: 如果你想要這兩者, 重置并且停止, 不要調(diào)用reset; 而應該調(diào)用stop。
設置單此循環(huán)的持續(xù)時間(通過調(diào)整時間比例(timeScale)以及停用所有的變形)。此方法可以鏈式調(diào)用。
設置時間比例(timeScale)以及停用所有的變形)。 此方法可以鏈式調(diào)用。如果暫停 (paused)值為false, 有效的時間比例(一個內(nèi)部屬性) 也會被設為該值; 否則有效時間比例 (直接影響當前動畫 將會被設為0.說明: 如果時間比例.timeScale 被此方法設為0,暫停值paused不會被自動改為true。
設置權重(weight)以及停止所有淡入淡出。該方法可以鏈式調(diào)用。如果啟用屬性(enabled)為true, 那么有效權重(一個內(nèi)部屬性) 也會被設為該值; 否則有效權重 (直接影響當前動畫)將會被設為0.說明: 如果該方法將權重weight值設為0,啟用值enabled不會被自動改為false。
設置循環(huán)(loop mode)及循環(huán)重復次數(shù)(repetitions)。改方法可被鏈式調(diào)用。
定義延時啟動的事件 (通常會傳入AnimationMixer.time + deltaTimeInSeconds)。 該方法可以鏈式調(diào)用。說明: 如果 startAt方法是和play方法一起鏈式調(diào)用, 或者動畫已經(jīng)在混合器中被激活 (通過先行調(diào)用play, 同時沒有停止或重置),動畫將僅在給定時間開始.
讓混合器停止動作。該方法可以被鏈式調(diào)用。動作會馬上停止以及完全[page:.reset 重置].說明: 你可以通過mixer.stopAllAction在一個混合器中一舉停止所有處于激活態(tài)的動作。
停止動作中所有預定的淡入淡出(fading)。該方法可以被鏈式調(diào)用。
停用動作中所有預定的變形warping。該方法可被鏈式調(diào)用。
將此動作與傳入的其它動作同步。此方法可被鏈式調(diào)用。同步是通過將動作的時間(time)或時間比例(timeScale)與另一動作設置一致來實現(xiàn)的 (停用所有預定的變形)。說明: 另一動作的 time 和 timeScale未來變化將不會被檢測到.
在傳入的事件間隔內(nèi),通過逐漸將時間比例timeScale由startTimeScale修改至endTimeScale來改變回放速度。該方法可被鏈式調(diào)用。
有兩個事件分別表示了單次循環(huán)的結(jié)束和全部動作的結(jié)束,你可以這樣對它們做出響應:
mixer.addEventListener( 'loop', function( e ) { …} ); // properties of e: type, action and loopDelta
mixer.addEventListener( 'finished', function( e ) { …} ); // properties of e: type, action and direction
src/animation/AnimationAction.js
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: