2016-09-22 2 views
0

私のプロジェクトではAフレームを使用しています。クリックすると要素とやりとりすることができるこのカーソルコンポーネントがあります。これはDOMのクリックと非常によく似ています。ポインタロックを実装した後にAフレームカーソルのクリックが無効にされる

ただし、ポインタロックを実装した後は、カーソルのクリックが機能しなくなりました。 ポインタロックは私のためにうまくいきます。私は歩き回って自分のシーンを見回すことができ、カーソルは常に私の目の前に現れます。

クリックが機能しないのはなぜですか?ポインタロックモードに入っていないと、クリックがうまく動作することを確認できます。ありがとう!私のデモへ

リンク: http://zichao.co/exp/_simu/

私は '#floor' にリスナーを追加しています。あなたが正常にフロアをクリックしたら、コンソールは 'こんにちは'と言うべきです。

+0

Pointerlockを有効にするコンポーネントはありますか?デモリンクが役立つかもしれません。 –

+0

私はweb apis:https://developer.mozilla.org/en-US/docs/Web/API/Pointer_Lock_APIを使用して独自のポインタロックを実装しましたが、質問のデモへのリンクを追加しました。 –

+0

[これは私が持っていた問題でした](https://github.com/aframevr/aframe/issues/1935)、結局のところ指針関連ではないことが判明しました。これが修正されると、[mouse-controls](https://github.com/donmccurdy/aframe-extras/blob/master/src/controls/mouse-controls.js)が+ pointerlockをクリックする実例になります。 –

答えて

0

apiを使用してPointerLockを実装しようとすると、最初に要素を定義し、element.requestPointerLockを呼び出す必要があります。ここの問題はその要素です。

私はa-sceneを要素として取りました。あなたがすべきことは、要素としてキャンバスを取り上げることです。キャンバスは後でフレームでレンダリングされます.3つの.js。

$(document).ready()関数はthree.jsによってdomに挿入されるためキャンバスを返すことができません。すなわちcanvasが作成される前にdomが準備完了です。私が今行うことは、インターバルを設定してキャンバスが作成されているかどうかをチェックし、PointerLockをアクティブにすることです。

解決済み。

関連する問題