O que é tween.js?
tween.js é uma biblioteca de animação js que pode gerar efeitos suaves de animação. Você só precisa informar ao tween qual valor deseja modificar, qual é o valor final ao final da animação, quanto tempo dura a animação e outras informações, e o mecanismo de interpolação pode calcular O valor entre o ponto de animação inicial e o ponto de animação final produz um efeito de animação suave. Tween.js pode ser usado não apenas em páginas HTML, mas também diretamente na malha three.js para controlar o efeito de animação de o modelo. E conveniente.
Crie um caso de animação simples no Vue
npm i @tweenjs/tween.js@^18 //下载tween.js
const TWEEN = require('@tweenjs/tween.js') //vue 中定义一个TWEEN的常量
addTweenEsa(mesh) { //核心代码 mesh 是使用three.js 建立的一个网格模型
this.EsaTween = new TWEEN.Tween(mesh.position)
.to({x: 30,y: 0,z: 30}, 2000) //改变当前模型的位置
.delay(1000) //开始时的延迟
.yoyo(true) //是否开启yoyo循环
.easing(TWEEN.Easing.Elastic.InOut) //运动曲线
.repeat(Infinity) //重复次数
this.EsaTween.start() //开启动画
},
método de função entre
-
start
inicia a animação da interpolação,new TWEEN.Tween().start(time)
o método start aceita um parâmetro de tempo, se o parâmetro for adicionado, a interpolação não iniciará imediatamente até um momento específico -
stop
fecha a animação de interpolaçãonew TWEEN.Tween().stop()
, fecha a animação de interpolação em execução -
repeat
controla o número de vezes que a interpolação é repetidanew TWEEN.Tween().repeat()
e repeat aceita um parâmetro que descreve quantas repetições são necessárias após a conclusão da primeira interpolação -
yoyo
controla o modo de repetição de interpolação,new TWEEN.Tween().yoyo()
esta função só é eficaz ao usar a repetição, a linha interpolada se moverá para frente e para trás como um ioiô, em vez de começar de novo -
delay
controla o atraso antes do início da interpolaçãonew TWEEN.Tween().delay()
e o tempo de atraso antes do início da interpolação aceita um parâmetro para controlar o tempo específico -
pausa
suspende temporariamente a animação de interpolaçãonew TWEEN.Tween().pause()
, suspende o movimento de interpolação atual -
retomar retoma a animação de interpolação
new TWEEN.Tween().resume()
e retoma o movimento de interpolação pausado -
para
controlar a forma de movimento e a direção da interpolação , quando a interpolação começar, Tween.js lerá o valor da propriedade atual e aplicará o valor relativo para encontrar o novo valor finalnew TWEEN.Tween().to()
-
Método de operação de interpolação
-
atualização
Animação de interpolação de atualizaçãoTWEEN.update()
, movimento de interpolação de atualização dinâmica é geralmentewindow.requestAnimationFrame
usado em conjunto -
getAll
obtém todos os grupos de interpolaçãoTWEEN.getAll()
-
removeAll
remove todos os grupos de interpolaçãoTWEEN.removeAll()
-
add adiciona
uma nova interpolaçãoTWEEN.add(tween)
(tween) para adicionar uma interpolação específicavar tween=new TWEEN.Tween()
-
remover
remove uma interpolaçãoTWEEN.remove(tween)
(interpolação) remove uma interpolação específicavar tween=new TWEEN.Tween()
-
Grupo adiciona um novo grupo de interpolações
var Group=TWEEN.Group()
,new TWEEN.Tween({ x: 1 }, Group)
, para agrupar as interpolações configuradasTWEEN.update()
eTWEEN.removeAll()
, não afetará as interpolações que foram agrupadas
-
-
função de retorno de chamada
-
onStart()
new TWEEN.Tween().onStart((obj)=>{})
, executado quando a interpolação inicia, apenas uma vez, quando repeat() é usado para repetir a interpolação, ela não será executada repetidamente e oonStart((obj)=>{})
objeto obj tween é passado como o primeiro parâmetro -
onStop()
new TWEEN.Tween().onStop((obj)=>{})
, executado quando a interpolação é interrompida explicitamente por meio de onStop(), mas executada quando a interpolação é feita normalmente e antes de interromper qualquer possível interpolação em cadeia, o objeto obj tween passado como o primeiroonStop((obj)=>{})
argumento -
onUpdate()
new TWEEN.Tween().onUpdate((obj)=>{})
, executado toda vez que a interpolação é atualizada, retorna o valor atual atualizado eonUpdate((obj)=>{})
o objeto obj tween é passado como o primeiro parâmetro -
onComplete()
new TWEEN.Tween().onComplete((obj)=>{})
, executado quando a interpolação é concluída normalmente (ou seja, não é interrompida),onComplete((obj)=>{})
o objeto obj tween é passado como primeiro parâmetro
-
Função de atenuação: TWEEN.Easing
tween.js fornece algumas funções de easing prontas, como linear, quadrática, três, quatro, cinco, senoidal, exponencial, circular, elástica, descendente e saltitante, e há tipos de easing correspondentes: In ( Lento primeiro, depois rápido ) Out (primeiro rápido, depois lento) e InOut (aceleração no primeiro tempo, desaceleração no segundo tempo)