Tweenmax Scale与ThreeJS网格

时间:2019-01-06 18:43:42

标签: javascript three.js gsap tweenmax

尝试使用TweenMax将比例平移合并到我的网格[0]中。使用“ mesh [0] .set.scale”作为第一个参数时,某些动画没有任何问题,例如旋转,甚至缩放。但是,在这种情况下,我会收到“未捕获的TypeError:无法从控制台分配为仅读取对象”#”错误的属性” scale”。

我猜想这与使用GSAP和ThreeJS的组合有关,因为我已经用普通的javascript尝试了相同的代码并且可以正常工作。

我尝试包含最少的代码,所以请告诉我是否需要更多代码!

const geometry = new THREE.IcosahedronBufferGeometry( 1, 0 );
materialRed = new THREE.MeshStandardMaterial({
  color: 0xFF0000
});

mesh[0] = new THREE.Mesh( geometry, materialRed );

scene.add(mesh[0]);

TweenMax.to(mesh[0], 1,  
{
  scale: 2,
  ease: Elastic.easeOut,
  yoyo: true,
  repeat: -1,
  yoyoEase: Bounce.easeOut,
  delay: 1,
}
);

2 个答案:

答案 0 :(得分:1)

找出我的问题:

TweenMax.to(mesh[0].scale, 1, 
{ x: 1.2,
  y: 1.2,
  z: 1.2,
  yoyo: true,
  repeat: -1,
});

当我本应专注于网格的比例时,似乎好像在尝试操纵整个网格。从这里我可以扩大规模并进行操作。

答案 1 :(得分:1)

重复方法调用已更新:

https://greensock.com/docs/TimelineMax/repeat()

   var t = Math.random() * 0.6 + 0.3;

  TweenMax.to( box.scale, t, {
                    x: 1 + Math.random() * 3,
                    y: 1 + Math.random() * 20,
                    z: 1 + Math.random() * 3,
                    ease: Power2.easeInOut
                } ).repeat(-1);

演示:

https://codepen.io/MAKIO135/pen/vmBzMv?editors=0010