将dat.GUI下拉菜单字符串映射到值

时间:2015-05-21 11:44:13

标签: javascript dat.gui

生成dat.GUI下拉菜单时,我给出了一个字符串数组,这些字符串将成为下拉菜单项。在用户选择后,相应的数据属性将更新为选定的菜单字符串。

有没有办法将菜单中的字符串与相应的值(可以是任何类型)分开?
例如,假设我的菜单是['King', 'Queen', 'Rook'],我希望我的属性获取值resp。 ['A','B','C'][-1, 9, 5]

1 个答案:

答案 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.