天天看點

ThingJS:僅需不到5行代碼,實作炫酷3D動畫

在物聯網領域,Thing都有哪些動效呢?調用ThingJS API看看。

對于 Thing 類的對象,是通過 url 加載的模型,很多模型在制作階段就内置了動畫。

ThingJS:僅需不到5行代碼,實作炫酷3D動畫

如果模型有内置動畫,則可以在 ThingJS 中利用 API 調用播放這些動畫。

如果是動态建立的物體,由于模型加載是異步的,則必須在模型加載完成後才能調用動畫。

1. 擷取模型動畫

首先我們通過 animationNames 屬性擷取上圖中的模型都有什麼動畫。

示例:

輸出:

ThingJS:僅需不到5行代碼,實作炫酷3D動畫

  1. 播放模型動畫

    我們使用 playAnimation 接口進行動畫播放。

• 簡單點傳播放動畫

ThingJS:僅需不到5行代碼,實作炫酷3D動畫
name: "animation",
    reverse: true//反轉數組
});            

• 可以反向播放動畫

ThingJS:僅需不到5行代碼,實作炫酷3D動畫

obj.playAnimation("animation");

• 可以循環播放動畫,并且可以同 loopType ,來控制循環類型

ThingJS:僅需不到5行代碼,實作炫酷3D動畫
obj.playAnimation({
    name: "open1",
    loopType: THING.LoopType.Repeat
});            

• 還可以同時播放多個動畫;

ThingJS:僅需不到5行代碼,實作炫酷3D動畫
name: ["open1", "open2"],
    loopType: THING.LoopType.PingPong,
    speed: 0.4
});            
  1. 停止播放模型動畫

    我們使用 stopAnimation 接口來停止動畫播放

`

//當物體帶有多個動畫時,

stopAnimation

接口将會停止所有動畫播放

obj.stopAnimation();

//指定停止哪個動畫

obj.stopAnimation("open1");

### 官方模型動畫介紹
我們有提供各個行業的模型供使用者選擇,這些模型有部分在制作階段就内置了動畫。例如:
倉儲
以下面的糧倉為例:
在CamBuilder中我們可以通過選中該模型,檢視模型是否帶有動畫,例如這個糧倉動畫名為‘CloseRoof’和‘OpenRoof’,分别控制糧倉開蓋關蓋動畫。
 ![](https://img2020.cnblogs.com/blog/1494719/202008/1494719-20200828181710705-691213668.png)
           

繼續閱讀