动态更改图片360

时间:2019-05-23 20:55:20

标签: javascript three.js html5-canvas

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

我需要将图像更改为先前选择的

我尝试了这篇文章,但没有成功

Threejs Change image at runtime

1 个答案:

答案 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' );
}