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

前端之家收集整理的这篇文章主要介绍了javascript – 用dat.gui保存参数似乎坏了?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在dat.gui中保存参数似乎有问题,或者我遗漏了一些非常明显的东西.

单击齿轮图标时会出现问题,该图标应打开一个带有要保存的JSON的弹出窗口.保存到本地存储也不适合我.这是两个JSFiddles:

> http://jsfiddle.net/navFooh/XZcde/ with dat.gui.min.js,单击齿轮会在控制台中抛出错误:Uncaught TypeError:无法读取未定义的dat.gui.min.js属性’forEach’:3
> http://jsfiddle.net/navFooh/8Hek6/使用dat.gui.js,单击齿轮图标确实显示带有JSON的弹出窗口,但参数x未显示

他们在线的样本工作正常(请参阅评论链接).但他们已经最小化了所有示例代码,包括lib本身.所以如果他们甚至使用最新的版本,我甚至无法解决.

任何帮助将不胜感激.

解决方法

我犯了调用gui.remember(obj)的错误;和gui.add(obj,’x’);在错误的顺序.

所以这是解决方案:

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

会发生什么是dat.gui在调用gui.add()函数时会记住要记住的对象的内部映射.保存值时,此映射gui .__ rememberedObjectIndecesToControllers []用于内部getCurrentPreset()函数.

但是,如果它们存储在gui .__ rememberedObjects []中,它只会向该地图添加对象,这就是订单如此重要的原因.

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

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

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

gui.remember(fizzyText);

// Add controllers ...
原文链接:https://www.f2er.com/js/240804.html

猜你在找的JavaScript相关文章