3

在特定情况下无法控制的摄像机移动。我正在使用鼠标滚轮来控制缩放(非常标准)。Macbook 触控板滚动可通过两根手指接触和平行垂直移动来实现。当您的手指分开时,我还没有尝试过缩放功能。无论用户的手指移动多远,使用触控板上的滚动功能都可以“无限”缩小场景。

这是细分:

  • 使用 Three.js > TrackballControls.js

  • Three.js 的版本似乎无关紧要。

  • 浏览器似乎略有不同。Chrome 中的问题更加严重,Firefox 中更稳定,但仍然存在。

  • 灵敏度并没有太大的区别。下面的两个示例都使用不同的 ZoomSpeed 常量。

可以看到问题的示例(当然需要 Macbook):

感谢您的时间!

添加了编辑 23:00EDT 12/3/13 以指定问题:

抱歉我没有具体说明。MacBook 触控板的滚动功能可能会被意外或故意使用,从而在用户每次访问时使网站无法使用。刷新是重置问题的唯一方法。解决这个问题的最佳方法是什么?检测操作系统并禁用滚动是一种选择,但也是一种荒谬的选择。对于任何使用 TrackballControls.js 的网站来说,这都是一个可访问性问题。其他开发人员如何解决这个问题?有任何想法吗?那是我的问题。感谢您的时间!

4

1 回答 1

2

我遇到了同样的问题。更改 TrackballControl.js 鼠标滚轮事件处理程序中的最后一行代码:

_zoomStart.y += ( 1 / delta ) * 0.05;

对此:

_zoomStart.y += delta * 0.01;

如果你的触控板和我的一样,它会多次触发鼠标滚轮事件,但增量会更小。由于鼠标滚轮增量被反转,较小的增量变成了较大的增量,并且由于它们的数量更多,因此缩放的调整幅度更大。我不确定为什么它在原始代码中会像这样反转。

于 2013-04-17T03:02:20.727 回答