1

我有一个带有多个控制器的 dat.gui 实例。我可以使用 获取它们的列表gui.__controllers,但我没有看到任何显示其类型的属性(下拉菜单、滑块、颜色选择器等)。

有没有办法得到他们的类型,也许是通过对象?

4

1 回答 1

1

你是对的,似乎没有一个类型属性来说明控制器的类型。但是,当您在 dat.GUI 属性对象中定义它们时,您显然已经知道类型是什么(即布尔值是复选框等)。

您可以确定控制器的类型,如以下代码笔所示:

http://codepen.io/BenSmith/pen/rHpzC

请参阅调试控制台以获取屏幕上显示的控制器类型列表。

确定类型的代码的关键部分是:

for (var i in gui.__controllers) {

 var controller = gui.__controllers[i];

 switch(controller.__li.className){
  case 'cr string':
    if (controller.__select != null) {
      console.log('dropdown');
    }
    else {
      console.log('input');
    }
    break;
  case 'cr number has-slider':
    console.log('slider');
    break;
  case 'cr boolean':
    console.log('checkbox');
    break;
  case 'cr object color':
    console.log('color picker'); 
    break;
  default:
    console.log('Unrecognized controller!')
  }  
}
于 2014-10-25T20:45:24.407 回答