Javascript 如何使用数组向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

我试图通过数组声明变量,以便在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.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>