javascript - 用 dat.gui 保存参数似乎坏了?

标签 javascript save dat.gui

<分区>

在 dat.gui 中保存参数似乎有问题,或者我遗漏了一些非常明显的东西..

单击齿轮图标时出现问题,该图标应打开一个包含要保存的 JSON 的弹出窗口。保存到本地存储对我也不起作用。这里有两个 JSFiddle:

他们在网上提供的示例工作正常(请参阅评论以获取链接)。但是他们已经最小化了所有示例代码,包括 lib 本身。所以我什至无法确定他们是否使用最新版本。

如有任何帮助,我们将不胜感激。

最佳答案

我错误地以错误的顺序调用了 gui.remember(obj);gui.add(obj, 'x');

所以这是解决方案:

var obj = { x: 5 };
var gui = new dat.GUI();
gui.remember(obj);
gui.add(obj, 'x');

当调用 gui.add() 函数时,dat.gui 会生成一个要记住的对象内部映射。此映射 gui.__rememberedObjectIndecesToControllers[] 在保存值时用于内部 getCurrentPreset() 函数。

但是,如果对象已存储在 gui.__rememberedObjects[] 中,它只会将对象添加到此 map ,这就是顺序如此重要的原因。

缩小版本抛出错误的原因是,当它试图从 gui.__rememberedObjectIndecesToControllers[] 获取映射值时,它会尝试遍历 undefined 值.

http://workshop.chromeexperiments.com/examples/gui/#5--Saving-Values 上的示例实际上显示了这个正确的顺序,我只是忽略了它:

var fizzyText = new FizzyText();
var gui = new dat.GUI();

gui.remember(fizzyText);

// Add controllers ...

关于javascript - 用 dat.gui 保存参数似乎坏了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22730039/

相关文章:

three.js - 如何使用 dat.gui 控制 textGeometry 的大小和颜色?

python - 使用 pandas 列表中的项目名称

javascript - 是否可以使用 Dat.gui 添加一个没有任何对象的 slider ?

javascript - Select2 在触摸设备(iOS,...)上的样式选择旁边显示 native 选择

javascript - 区域缺失错误 - AWS Amplify React

javascript - HTML5 和 Javascript Canvas 游戏 - 如何让玩家能够保存游戏

ios - 在 Swift 中使用 NSUserDefaults 保存 NSMutableArray 返回 Nil

text - dat.gui 显示简单文本

javascript - 如果日期和时间早于某个值,则发出警报消息

javascript - 使用 Handlebars 渲染对象的嵌套数组