3

特定の状況で制御不能なカメラの動き。マウスのスクロール ホイールを使用してズームを制御しています (かなり標準的です)。Macbook のトラックパッドのスクロールは、2 本の指の接触と平行な垂直方向の動きで機能します。指を離したときのズーム機能は試していません。トラックパッドのスクロール機能を使用すると、ユーザーの指がどれだけ動いてもシーンが「無限に」ズームアウトします。

内訳は次のとおりです。

  • Three.js の使用 > TrackballControls.js

  • Three.js のバージョンは関係ないようです。

  • ブラウザによって若干の違いがあるようです。Chrome では問題が悪化し、Firefox ではより安定していますが、それでも問題はありません。

  • 感度はさほど変わりません。以下の両方の例では、異なる ZoomSpeed 定数を使用しています。

問題が見られる例 (もちろん Macbook が必要です):

お時間をいただきありがとうございます!

質問を指定するために編集 23:00EDT 12/3/13 を追加:

すみません指定してませんでした。MacBook トラックパッドのスクロール機能は、ユーザーが訪問するたびにサイトを役に立たなくするために、偶発的または意図的に使用される可能性があります。更新は、問題をリセットする唯一の方法です。これにアプローチする最良の方法は何ですか?OSを検出してスクロールを無効にすることはオプションですが、ばかげたものでもあります。これは、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 に答える