【发布时间】:2023-04-07 13:51:01
【问题描述】:
我有一个带有可配置 3d 对象的站点,该对象具有一些属性,当我更改这些属性时,我用 3d 对象重新加载 div 以反映新属性。它工作正常,只是脚本数据不断添加。不仅脚本在 30 次重新加载后会变慢,而且会发生这种情况。我在渲染功能中添加了旋转对象旋转,并且每次重新加载按钮都会旋转得更快! 5次重新加载后,它像疯了一样旋转。旋转功能很简单:
function animate() {
if (typeof(objektas) !== 'undefined') {
rotation++;
if (rotation >= 360) rotation = 0;
objektas.rotation.y = rotation * Math.PI * 2 / 360;
}
requestAnimationFrame(animate, renderer.domElement);
renderer.render(scene, camera);
}
我的猜测是,每次加载渲染时,这些动画函数都会堆叠起来,例如在第二次重新加载时,它们会被调用两次而不是一次。有人能解释一下我该如何解决这个问题吗?
【问题讨论】:
-
我不完全理解,但它听起来就像您在事件处理程序中附加了一个事件处理程序。在脚本开始时附加一次,或者删除现有的事件处理程序并附加新的事件处理程序,如果有关于新事件处理程序的更具体的内容。抱歉,我无法更具体地了解您的情况,我不确定
requestAnimationFrame或render是做什么的。
标签: javascript jquery ajax three.js