Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Three.js Aframe-获取文本的宽度和高度<;a-text>;成分_Three.js_Aframe - Fatal编程技术网

Three.js Aframe-获取文本的宽度和高度<;a-text>;成分

Three.js Aframe-获取文本的宽度和高度<;a-text>;成分,three.js,aframe,Three.js,Aframe,在自定义aframe组件中获取aframe文本组件的高度/宽度时遇到问题。文本出现在我的场景中,我可以console.log“几何体”和“材质”属性。但是,geometry.layout属性未定义,尽管我可以在我的console.log中看到它!“布局”属性包含高度和宽度,这是我需要的。我怎样才能得到它们? 谢谢你的帮助 const label = document.createElement('a-text'); label.setAttribute('id', 'label

在自定义aframe组件中获取aframe文本组件的高度/宽度时遇到问题。文本出现在我的场景中,我可以console.log“几何体”和“材质”属性。但是,geometry.layout属性未定义,尽管我可以在我的console.log中看到它!“布局”属性包含高度和宽度,这是我需要的。我怎样才能得到它们? 谢谢你的帮助

    const label = document.createElement('a-text');

    label.setAttribute('id', 'label');
    label.setAttribute('position', '0 0 0');
    label.setAttribute('value', 'Label test');
    label.setAttribute('color', 'black');

    label.addEventListener('object3dset', () => {
      const { material, geometry } = label.object3D.children[0];

      // Property geometry.layout is 'undefined' !!!
      console.log('LAYOUT', geometry.layout);
      console.log('LAYOUT_HEIGHT', geometry.layout.height);
      console.log('LAYOUT_WIDTH', geometry.layout.width);

      material.alphaTest = 0.5;
      material.transparent = true;
      material.depthTest = false;
      material.depthWrite = false;

    });

这还不足以成为一个正确的答案,但您是否尝试过将侦听器中的“object3Dset”更改为“loaded”?我刚刚尝试过,在“object3Dset”事件之后会触发“loaded”事件,但geometry.layout属性仍未定义。为你的帮助干杯,尼克。