国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解tween.js 中文使用指南

2024-05-06 15:22:51
字體:
來源:轉載
供稿:網友

補間(動畫)是一個概念,允許你以平滑的方式更改對象的屬性。你只需告訴它哪些屬性要更改,當補間結束運行時它們應該具有哪些最終值,以及這需要多長時間,補間引擎將負責計算從起始點到結束點的值。

例如,position對象擁有x和y兩個坐標:

var position = { x: 100, y: 0 }

如果你想將x坐標的值從100變成200,你應該這么做:

// 首先為位置創建一個補間(tween)var tween = new TWEEN.Tween(position);// 然后告訴 tween 我們想要在1000毫秒內以動畫的形式移動 x 的位置tween.to({ x: 200 }, 1000);

一般來說這樣還不夠,tween 已經被創建了,但是它還沒被激活(使用),你需要這樣啟動:

// 啟動tween.start();

最后,想要成功的完成這種效果,你需要在主函數中調用TWEEN.update,如下使用:

animate();function animate() { requestAnimationFrame(animate); // [...] TWEEN.update(); // [...]}

這樣在更新每幀的時候都會運行補間動畫;經過 1秒后 (1000 毫秒) position.x將會變成 200。

除非你在控制臺中打印出 x 的值,不然你看不到它的變化。你可能想要使用 onUpdate 回調:

tween.onUpdate(function(object) { console.log(object.x);});

tips:你可能在這里獲取不到 object.x ,具體的見我提的這個 issue

這個函數將會在動畫每次更新的時候被調用;這種情況發生的頻率取決于很多因素 - 例如,計算機或設備的速度有多快(以及如何繁忙)。

到目前為止,我們只使用補間動畫向控制臺輸出值,但是您可以將它與 three.js 對象結合:

var tween = new TWEEN.Tween(cube.position) .to({ x: 100, y: 100, z: 100 }, 10000) .start();animate();function animate() { requestAnimationFrame(animate); TWEEN.update(); threeRenderer.render(scene, camera);}

在這種情況下,因為three.js渲染器將在渲染之前查看對象的位置,所以不需要使用明確的onUpdate回調。

你可能也注意到了一些不同的地方:tween.js 可以鏈式調用! 每個tween函數都會返回tween實例,所以你可以重寫下面的代碼:

var tween = new TWEEN.Tween(position);tween.to({ x: 200 }, 1000);tween.start();

改成這樣:

var tween = new TWEEN.Tween(position) .to({ x: 200 }, 1000) .start();

在將會看到很多例子,所以熟悉它是很好的!比如04-simplest 這個例子。

tween.js的動畫

Tween.js 不會自行運行。你需要顯式的調用 update 方法來告訴它何時運行。推薦的方法是在主動畫循環中執行這個操作。使用 requestAnimationFrame 調用此循環以獲得最佳的圖形性能。

比如之前這個例子:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 嘉鱼县| 唐河县| 汝南县| 兴宁市| 金平| 乐都县| 周宁县| 股票| 大兴区| 双牌县| 于田县| 长汀县| 封开县| 玛多县| 林甸县| 浮梁县| 汾西县| 东乌珠穆沁旗| 东台市| 丹东市| 卓尼县| 双柏县| 毕节市| 瑞安市| 浦县| 安徽省| 汾西县| 调兵山市| 原阳县| 十堰市| 新竹县| 务川| 鹿邑县| 都兰县| 惠来县| 蕲春县| 阿合奇县| 桓台县| 道真| 中方县| 永靖县|