2017-10-23 4 views
0

オーディオファイルが再生されている間、私は自分のシーンにトリガーを入れて無効にする必要があります。フレーム内のイベント中にすべてのトリガーを無効にする

シーンを開くときにオーディオファイルが最初に再生されます。この間、私はすべてのトリガーを無効にして、オーディオ時間中にユーザーがそれらとやり取りできないようにします。

これらをすべて無効にする方法はありますか? ありがとう!

答えて

1

Aフレームマスタービルドには、raycaster.enabledプロパティがあります。だから、setAttribute('raycaster', 'enabled', false)を一時的に行うことができます。

https://github.com/aframevr/aframe/commit/3ea1b0c32070975b6a8cf5e59d345ac789b930fe

彼らは正しくそのハンドラを実装する場合にも、コンポーネントに.pause()を実行することができます。 vive-controlsのトリガダウンを無効にしたい場合:

controllerEl.components['vive-controls'].pause(); 
+0

'setAttribute( 'raycaster'、 'enabled'、false)'は私のためには機能しませんでした。代わりに 'setAttribute( 'raycaster'、{far: '0'})'を使用して、レイキャスターが小さすぎて何も交差しないようにしました。 – dianadfonseca

+0

前述のように、マスタービルド – ngokevin

+0

が必要です。現時点でビルドのURLはhttps://rawgit.com/aframevr/aframe/f02de02/dist/aframe-master.min.jsです。 – ngokevin

0

トリガーによる操作イベントリスナーを持つエンティティを意味しますか?
もしそうなら、ngoKevinがhereを提案したように "pause()"が実装されていますか?

ない場合は、アイデアは、イベントリスナーを削除し、イベントリスナー

  • pause()を追加

    • play()メソッドを持つことです。


    これを持つと、残っているのは組織だけです。どちらの親エンティティの内部であなたのトリガのすべてを維持し、あなたの音だけで演奏されたときに、このような子どもたちを反復:

    document.querySelector("#TriggerParent").children.forEach((el) => { 
        el.pause(); 
    } 
    

    またはあなただけのquerySelector([triggerComponent]);


    のように、任意の共通の属性によってそれらをつかむことができ、私は推測しますこれをすべて「手動で」各トリガーにアクセスすることはできますが、すべてのトリガーを有効または無効にする動的な方法が良い方法です。

  • +0

    たとえば、私はイベントリスナーとマウスセンターのイベントを意味します(これらは一時停止することはできません)。私は、おそらくこれを解決する簡単な方法は、オーディオ再生中にレイキャスターコンポーネントを短くすることだとも考えていました。 – dianadfonseca

    関連する問題