var devices = JSON.parse("{{ devices|safe }}");
我有一个使用<div style="margin-bottom: 200px">
<a href="#" onclick="cambio()"> sdsadasdas</a>
</div>
<div id="container"></div>
<div id="info"> </div>
的图片,当我点击按钮时,其他人需要动态更改该图片
three.js
我需要将图像更改为先前选择的
我尝试了这篇文章,但没有成功
答案 0 :(得分:0)
您需要使变量可全局访问,而不是将其范围限制为init()
函数。
将其视为维恩图,您必须将material
放在init()
和cambio()
之外,以便两者都可以使用。您可以通过在第1行上进行声明来做到这一点:
var camera, scene, renderer, material;
然后,您可以在material
内部初始化init()
,而无需使用var
:
function init(imagen) {
// ...
material = new THREE.MeshBasicMaterial( {
map: THREE.ImageUtils.loadTexture( imagen+'.jpg' )
} );
// ...
}
一旦您准备好致电cambio()
,该资料将在全球范围内可用,因此您可以访问它并更改其地图:
function cambio(){
material.map = THREE.ImageUtils.loadTexture( 'secondImage.jpg' );
}