setAttribute
のメソッドは、Aフレームプリミティブでは無効になります。既存のノードに属性としてコンポーネントを追加するメソッドを呼び出すと、既存のコンポーネント属性が上書きされます。したがって、target
がリセットされます。 AEntity
を使用していることを確認して、コンポーネントの属性を特定の値に設定することができます。この問題を解決するためにaframe/core/a-entity.js
でsetAttributeメソッドのJSのドキュメントをチェックし 、単に呼び出す:
let camera = document.getElementById('camera')
camera.setAttribute('mycomponent', 'position', '-10 0 10')
かを...
let camera = document.getElementById('camera')
AFRAME.utils.entity.setComponentProperty(camera, 'mycomponent', 'position', '-10 0 10')
...あなたにオプションを与えます最初のパラメータには(カスタムの)デリミタ(デフォルトは "。")を使用してください。AFRAME.utils.entity.setComponentProperty(camera, 'mycomponent.position', '-10 0 10' [, delimiter])
。
**重要事項AEntityに継承されているANodeは、setAttribute
メソッドの実装が異なります。
'camera.setAttribute( 'MyComponentの'、 '位置'、 '-10 0 10')'作品。また、camera.setAttribute( 'mycomponent'、{position: '-10 0 10'})も動作します。私は 'AFRAME.utils'を使用しませんでしたが、あなたが作った説明はそれの背後にある黒い魔法を指摘しています。 –