我有一个带有多个控制器的 dat.gui 实例。我可以使用 获取它们的列表gui.__controllers
,但我没有看到任何显示其类型的属性(下拉菜单、滑块、颜色选择器等)。
有没有办法得到他们的类型,也许是通过对象?
我有一个带有多个控制器的 dat.gui 实例。我可以使用 获取它们的列表gui.__controllers
,但我没有看到任何显示其类型的属性(下拉菜单、滑块、颜色选择器等)。
有没有办法得到他们的类型,也许是通过对象?
你是对的,似乎没有一个类型属性来说明控制器的类型。但是,当您在 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!')
}
}