是否可以使用Dat.gui添加没有任何对象的滑块?

时间:2014-06-26 13:30:30

标签: javascript user-interface dat.gui

我想有一个快捷方式:

gui.add({zoom: 5}, 'zoom', 10, 200).name('Zoom').onChange(onChange)

类似的东西:

gui.add(sliderType, name, min, max, onChange)

处理非常常见的情况,我没有任何对象来构建滑块。相反,我想从GUI中滑块的值构建新对象。

例如,在绘图应用程序中,用户需要选择要绘制/添加的对象的参数,然后他将单击以添加它,最后他想要修改它以更改滑块。这意味着没有对象来构建滑块,但是在onChange事件上GUI将修改所有选定的对象。

处理此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

只需使用JSON对象来创建和修改对象。

您并不总是需要与GUI中的对象和应用程序中对象的属性建立直接的1-1关系。

var objectProps = {x:0, y:0, radius:50};

GUI.add(objectProps, 'x', ...).onChange(changeSelected); //add sliders
...

function changeSelected() {
  //loop objects
  if (object.selected) //change props based on current values of objectProps
}

function createObject() {
  //use current values of objectProps as default props for new object
}