生成dat.GUI下拉菜单时,我给出了一个字符串数组,这些字符串将成为下拉菜单项。在用户选择后,相应的数据属性将更新为选定的菜单字符串。
有没有办法将菜单中的字符串与相应的值(可以是任何类型)分开?
例如,假设我的菜单是['King', 'Queen', 'Rook']
,我希望我的属性获取值resp。 ['A','B','C']
或[-1, 9, 5]
。
答案 0 :(得分:2)
是
想象一下下面的例子,
group_id.post_id.timestamp
要做的第一件事是确定它是控制器(上面)还是文件夹。如果是前者,则可以在gui = new dat.GUI();
var text =
{
speed: 'someName'
}
gui.add(text, 'speed', { King: 'A', Queen: 'B', Rook: 'C' } );
中找到下拉菜单的位置(否则,如果是后者,则可以在gui.__controllers
中找到该位置。您有多个控制器,您必须为下拉菜单确定适当的控制器 - 它将与gui.__folders
一致。
假设它是您唯一的控制器,那么您可以通过dat.controllers.OptionController.e
访问它。
下一步是弄清楚用户选择了什么。带有下拉菜单的每个控制器都有gui.__controllers[0]
选项。在每个__select
选项中,有一个__select
,其中详细说明了用户选择的内容。
这将采用selectedOptions
。
如果选择了King,则返回的值为A.