小编use*_*057的帖子

如何在three.js中首先加载JSON模型并在init之前分配变量?

我想加载相当多的JSON模型并将它们放在全局变量中,这样我就可以使用它们进行复制,翻译等.这样我每次需要时都不需要加载模型.

我尝试了一些方法,但似乎加载模型是异步发生的.

在完成其他所有操作后,模型似乎已加载.所以我已经声明了我的变量,但它们保持空白或不起作用.如何首先加载模型,等到完成后再启动init()和其余代码?

例:

var loader = new THREE.JSONLoader();

var test1 = new THREE.Object3D();
var test2 = new THREE.Object3D();
var test3 = new THREE.Object3D();
var test4 = new THREE.Object3D();
var test5 = new THREE.Object3D();
var test6 = new THREE.Object3D();
var test7 = new THREE.Object3D();

loadparts();
init();
animate();

function init() {
    var newpart = test1.clone();
    console.log("newpart.id:" + newpart.id);
    newpart.position.set(0,0,0);
    scene.add(newpart);

    console.log("test1.children.length:" + test1.children.length);

    placePart(test1,0,100,0);
    placePart(test2,0,200,0);
    placePart(test3,0,300,0);
    placePart(test4,0,400,0);
    placePart(test5,0,500,0);
    placePart(test6,0,600,0);
    placePart(test7,0,700,0);
}

function loadparts( ) {

    loader.load( "Models/test1.js", function ( geometry, materials …
Run Code Online (Sandbox Code Playgroud)

javascript json callback loader three.js

4
推荐指数
1
解决办法
1444
查看次数

标签 统计

callback ×1

javascript ×1

json ×1

loader ×1

three.js ×1