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 TypeError:无法读取属性';对象';dat.gui.module.js中recallSavedValue处的null值:3218_Three.js_Dat.gui - Fatal编程技术网

Three.js TypeError:无法读取属性';对象';dat.gui.module.js中recallSavedValue处的null值:3218

Three.js TypeError:无法读取属性';对象';dat.gui.module.js中recallSavedValue处的null值:3218,three.js,dat.gui,Three.js,Dat.gui,在three.js中,我试图通过自定义值添加gui。但它给了我错误。 这是我的密码 var arm = document.getElementById('arm'); var model_arr = []; model_arr['narm'] = (arm)? arm:0; function init(){ ...create scene, camera, load obj,mtl render it etc. initGUI(); } function initGUI() { initGUIC

在three.js中,我试图通过自定义值添加gui。但它给了我错误。 这是我的密码

var arm = document.getElementById('arm');
var model_arr = [];
model_arr['narm'] = (arm)? arm:0;
function init(){
...create scene, camera, load obj,mtl render it etc.
initGUI();
}
function initGUI() {
initGUICalled = true;   
if (typeof model_arr !== 'undefined' && model_arr.length > 0) {
    params = {
    Arm: (model_arr['narm'])? model_arr['narm']:20.75,
    resetval: function() { resetBody(); }
    };  
}
// Set up dat.GUI to control targets
lower = gui.addFolder( 'Lower Measurement' );       
let ArmCtrl = lower.add( params, 'Arm', 18.75, 22.75 ).step( 0.21 ).name("Arm in Inch").listen();
ArmCtrl.onChange( function ( value ) {
    mesh.morphTargetInfluences[ 0 ] = (value - 20.75)/2.1;
} );

lower.close();
gui.close();
        
}

function resetBody(){
    initGUICalled = true ;
    params.Arm = 20.75;
    mesh.morphTargetInfluences[ 0 ] = 0;
            
}
我试图从模型arr对象中给出值。为此,我已经尝试过了

let ArmCtrl = lower.add( params, 'Arm', 18.75, 22.75 ).step( 0.21 ).name("Arm in Inch").listen();
ArmCtrl.onChange( function ( value ) {
    mesh.morphTargetInfluences[ 0 ] = (value - model_arr['narm'])/2.1;
} );
然后出错了

未捕获类型错误:文件夹。添加(…)。步骤不是函数 在new_women_xl_initGUI

我已经查过这些参考资料了
但是运气不好。

使用
model\u arr
,您可以在将其用作数组和对象之间切换:

//这里将其初始化为数组
var模型_arr=[];
//在这里,您将作为对象访问它,而不是向数组添加任何值
型号arr['narm']=(arm)?手臂:0;
//数组的长度仍然为0,因此params永远不会获得值
如果(型号阵列长度>0){
参数={
手臂:xxx
};
}
//现在,当您尝试访问params.Arm时,它不存在
让ArmCtrl=lower.add(参数“Arm”、18.75、22.75)
如果要使用数组,请在变量的整个生存期内始终使用数组。如果要创建对象,请从新变量开始,以免混淆这两个变量

如果要在数组末尾添加值,请执行以下操作:

var narm=(arm)?手臂:0;
//将值添加到数组的末尾
模型推力(narm);
//现在数组的长度是1

是的,它对我有用。要想获得浮点值,还需要使用parseFloat var arm=parseFloat(document.getElementById('arm').value);。再次感谢你救了我一天。