2017-03-29 10 views
0

角度と組み合わせてAフレームを使用して仮想ガイドを作成し、次のコードを使用してa-entityタグからすべてのホットスポットとナビゲーション矢印を削除します。子ノードはモバイルブラウザでは削除されません

while (this.hotSpotEntity.hasChildNodes()) { 
    this.hotSpotEntity.removeChild(this.hotSpotEntity.childNodes[0]); 
} 

while (this.navigationEntity.hasChildNodes()) { 
    this.navigationEntity.removeChild(this.navigationEntity.childNodes[0]); 
} 

このコードは、グローバル変数として定義したa-entityタグからすべての要素を削除します。しかし、このコードには問題があります。

P.S .: Aフレームがサポートしていないため、データバインディングを使用できません。

下記のこの最初のシーンを参照してください。矢印と拡大鏡は、私が書いたコードで追加され、hotspotEntitynavigationEntityの子です。

screenshot_20170329-142718

私は、コードが新しいシーンにあなたをナビゲートし、矢印をIをクリックしました。しかし、矢印とホットスポットは削除されていないことがわかりました。これは赤い縞模様の画像です。緑色の丸い画像がナビゲートされた後に追加されます。

screenshot_20170329-142735

あなたは緑をクリックすると、あなたが次のシーンに移動している、矢を丸で囲みました。ここでは、最初の空からの画像は削除されませんが、2番目のシーンの画像は削除されていることがわかります。

screenshot_20170329-145030

バグがモバイルブラウザデスクトップブラウザ上(Android版Google Chromeの、サムスンインターネット)ない(Firefoxの、エッジ)にのみ発生します。

このバグはモバイルブラウザでのみ発生し、どのように解決できますか?

このリンクのツアーは、http://student.howest.be/hein.pauwelyn-vand1/poppr/aframe/とフルコードthis GitHub Gistでテストできます。

+0

多分あなたは携帯電話で利用できないES2015機能を使用していますか?おそらくpolyfillを忘れていますか?あなたはES5に移るためにバベルを使用していませんか? –

+0

@RicoKhler私は矢印の表記 '()=> {...}'を使用しています。私は完全なコードをオンラインに置く。 –

+0

あなたはそれらをES5に移すためにバベルを使用していますか? –

答えて

0

たぶん少し違う何かを試してみてください。

while (this.hotSpotEntity.firstChild) { 
    this.hotSpotEntity.removeChild(this.hotSpotEntity.firstChild); 
} 

while (this.navigationEntity.firstChild) { 
    this.navigationEntity.removeChild(this.navigationEntity.firstChild); 
} 

firstChildは1つが存在しない場合はnullを返します。読み取り専用プロパティです。あなたが子供がいるときは真実で、子供がいないときは馬鹿だから、それを条件で使うことができます。

これはモバイルで動作し、バグを修正した場合、なぜ残念なことにわかりません。 これで問題が解決しない場合は教えてください。私は答えを削除します。

+0

いいえ動作しません。 PS:他の人がこれがうまくいかないことが分かっているので、この回答を削除しないでください。 –

+0

@ H.Pauwelynそれはいい考えです。私は、これを問題の解決策の可能性についてより多くのコメントとして見ているので、削除を考えていただけです。運が良ければ –

+0

奇妙な。たぶん 'this.navigationEntity.innerHTML = '''を試してみませんか?あなたはそのコードを実行すると子供を検出しますか? – ngokevin

関連する問題