Javascript 如何使用数组向dat.Gui插入变量?
我试图通过数组声明变量,以便在dat.Gui控制器中使用它们。这是我的尝试:Javascript 如何使用数组向dat.Gui插入变量?,javascript,arrays,user-interface,dat.gui,Javascript,Arrays,User Interface,Dat.gui,我试图通过数组声明变量,以便在dat.Gui控制器中使用它们。这是我的尝试: <script> window.Horizontale = 300; window.Vertikale = 300; window.A = new Array(); for (var i=1; i<7; i++) { window.A[i] = false; } window.onload = function() { var gui = new dat.G
<script>
window.Horizontale = 300;
window.Vertikale = 300;
window.A = new Array();
for (var i=1; i<7; i++) {
window.A[i] = false;
}
window.onload = function() {
var gui = new dat.GUI();
gui.add(window, 'Horizontale', 0, 600);
gui.add(window, 'Vertikale', 0, 600);
for (var i=1; i<7; i++) {
gui.add(window, A[i]);
}
gui.remember(window);
};
</script>
window.Horizontale=300;
垂直窗=300;
window.A=新数组();
对于该行中的(var i=1;i):
gui.add(window, A[i]);
…add()
但是,window
上没有名为false
的属性。因此,您需要在对象的某个位置指定具有所需名称的属性,然后您可以为每个属性指定要作为附加参数传递给add()的值
–在这种情况下,false
会给您一个处于未选中状态的复选框
因此,假设您想要6个名为1-6的未选中复选框,您可以做一些事情,但它们都涉及到在某个对象的某个位置添加6个命名属性。下面是一种方法,使用第二个对象保存控制器名称,这将取代第二个for
循环:
for (var i=1; i<7; i++) {
controller_names[i] = A[i];
gui.add(controller_names, i, A[i]);
}
用于(var i=1;i您是如何决定它不出现在控制器中的?您能否显示方法gui。如果您无法访问此方法中的数组,请添加声明。另外,可能是在“for”循环之前出现故障,因此循环中的代码未被执行。我建议检查firebug或chrome js console如果它没有显示任何错误我不确定我是否正确。当我运行此脚本时,会出现一个带有控制器“Horizontale”和“Verticale”的dat.gui,但不是一个[1]、一个[2]、一个[3]……其他控制器工作正常。Aptana和Firebug都没有显示任何错误。在gui之前添加alert(a[i])
。添加(窗口,一个[i])如果这些警报在执行时显示为false,则表示smth与您的gui.add(窗口,A[i])有误;
Ok。如果我在gui.add(窗口,A[i])之前添加alert(A[1]);
;如果我没有将警报放在后面,则会显示该警报。
<script>
window.onload = function() {
var gui = new dat.GUI();
gui.Horizontale = 300;
gui.Vertikale = 300;
gui.A = new Array();
for (var i=1; i<7; i++) {
gui.A[i] = false;
}
gui.add(gui, 'Horizontale', 0, 600);
gui.add(gui, 'Vertikale', 0, 600);
for (var i=1; i<7; i++) {
gui.add(gui.A, i, gui.A[i]);
}
gui.remember(gui);
};
</script>