2017-01-16 55 views
0

我刚刚创建使用aframe图片的盒子如何将输入框放在aframe中?

<a-entity geometry=" primitive: box; depth: 0.1; height: 12; width: 20" position="0 7 -5" material="shader: flat; roughness: 1; src: url(images/picture.png)"></a-entity> 
<a-entity geometry=" primitive: box; depth: 0.1; height: 2; width: 2" position="-9.5 2 -4.5" material="shader: flat; roughness: 1; color: #ccc"></a-entity> 

有没有一种方法,我可以把底部方形做同样的事,作为一个<input type="file">被点击时,所以我可以在更换图片更大的盒子?

回答

0

正常的HTML组件不能直接在WebGL中渲染,因此在A帧场景中添加<input/>不起作用。有a few workarounds用于将HTML的外观转换为纹理,但这不包括交互性。

您可以将输入放到场景之外,并将点击事件重新指向第二个框。

boxEl = document.querySelector('#box-el'); 
fileInputEl = document.querySelector('#file-input-el'); 

boxEl.addEventListener('click', function() { 
    fileInputEl.click(); 
}); 

注意文件选择菜单仍然是浏览器中的“正常”的菜单,它不是在WebGL的/ VR所示。 Because of security restrictions,您无法自定义该菜单或在WebGL中构建它。

+0

对不起,我花了这么长时间来回应,但出于某种原因与您的代码,它不会工作,除非我在调用控制台内调用函数。 – MrWm

+0

你可以找到我指的代码[这里](https://github.com/wiiliam/a-frame_input)(github链接) – MrWm

+0

你会得到什么错误?请注意,如果场景尚未加载,则这些元素都不存在。所以你可能需要将代码放在组件中。 –