我有一个带有dat.gui界面的webapp,我希望人们能够彼此分享他们的设置。我知道您可以将预设保存到localStorage文件,或者将它们作为JSON对象直接保存在源中。 (http://workshop.chromeexperiments.com/examples/gui/#5--Saving-Values)
我在旧版本的dat.gui中看到有一个saveURL()
函数,我认为它在查询字符串中传递了设置。 (https://dat-gui.googlecode.com/git-history/v0.3.2/index.html)
当前版本是否可以在页面加载时将任意JSON传递给gui,或者通过查询字符串指定JSON文件的链接?
答案 0 :(得分:1)
我创建了一个示例(使用dat.gui版本0.5),该示例演示了在初始化dat.GUI对象时从JSON文件加载预设值:
http://codepen.io/BenSmith/pen/lxiqb
“重新水合”dat.GUI对象的代码的关键部分是:
var json = '{ \
"preset": "Default",\
"closed": false,\
"remembered": {\
"Default": {\
"0": {\
"message": "Value from JSON",\
"speed": 5,\
"displayOutline": true,\
"color1": [\
128,\
128,\
128\
]\
}\
}\
},\
"folders": {}\
}';
var text = new datGUI();
var gui = new dat.GUI({ load: JSON.parse(json) });
注意“message”值(例如)如何具有JSON中的值(即“来自JSON的值”),而不是默认dat.GUI对象中的值(即“dat.gui”)。< / p>
实际上,您将从文件中获取JSON,而不是对其进行硬编码。另请注意使用JSON.parse()将JSON字符串转换为JSON对象。