这是dat.gui接口中的下拉列表。一旦您单击任何数字,jumpSwitcher将是您选择的任何数字。我试图根据用户为Starsystem选择的内容替换与其特定编号相关的每个列表。

在默认情况下,solPlanets= ['Ilos', 'Tuchanka', 'Illium', 'Palaven']显示“水星”、“金星”、“地球”、“火星”、“木星”、“土星”、“天王星”、“海王星”,因为默认情况是jumpSwitcher = 1。
问题是,无论solPlanets= ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune']是2,列表都会显示为jumpSwitcher。
如果jumpSwitcher为2,则通过放置警告消息来确认这一点,并弹出警报,但列表不会更改。这可能与dat.gui不更新的类似问题有关。我试过听()方法,因为它是给出的主要答案,但它对我没有用。
我用它做了一个小提琴。
PS:我以前问过这个问题,但现在我意识到它很可能与dat.gui有关,而不是刷新值,而不是javascript。所以我删除了这个问题,因为它接触到了一个错误的观众,而且我没有为它做一个小提琴。
发布于 2016-10-31 18:20:22
你必须重新创建行星列表的控制器。
我修改了你的小提琴手例子这里。主要内容
function updatePlanets(id) {
var controller = gui.__controllers[2];
controller.remove();
gui.add(data, 'Planets', planets[id]).onChange(doSomeStuff);
//back to 0 element
data.Planets = 0;
gui.__controllers[2].updateDisplay();
}而且,当我将DAT.GUI的版本更改为0.6.1时,它也开始工作了。
https://stackoverflow.com/questions/40341872
复制相似问题