快好知 kuaihz订阅观点

 

datgui控件解读

Dat.gui 使用教程:Dat.gui 是一个 GUI 组件,他可以为你的 demo 提供参数的设置。并且很容易上手。

基础用法

引入js 文件

 

初始化配置

var Options = function() {

  this.message = "dat.gui";

  this.speed = 0.8;

  this.displayOutline = false;

  this.button = function() {};

};

window.onload = function() {

  var options = new Options();

  var gui = new dat.GUI();

 

  gui.add(options, "message");

  gui.add(options, "speed", -5, 5);

  gui.add(options, "displayOutline");

  gui.add(options, "button");

};

这里,在你的配置项:FizzyText里,GUI 会根据你设置的属性类型来渲染不同的控件

如果是Number 类型则用 slider来控制

如果是 Boolean 类型,则用 Checkbox来控制

如果是 Function 类型则用 button 来控制

如果是 String 类型则用 input 来控制

 

 

 

 

 

 

 

 

 

 

 

1/6

控制输入限制

控制限制输入项输入类型以及值

gui.add(text, "noiseStrength").step(5); // 增长的步长

gui.add(text, "growthSpeed", -5, 5); // 最大、最小值

gui.add(text, "maxSize").min(0).step(0.25); // 最大值和步长

// 文本输入项

gui.add(text, "message", [ "pizza", "chrome", "hooray" ] );

// 下拉框形式选择文案

gui.add(text, "speed", { Stopped: 0, Slow: 0.1, Fast: 5 } );

 

 

 

 

 

 

 

 

 

 

选项组

可以使用文件夹给选项分组

var gui = new dat.GUI();

var f1 = gui.addFolder("Flow Field");

f1.add(text, "speed");

f1.add(text, "noiseStrength");

var f2 = gui.addFolder("Letters");

f2.add(text, "growthSpeed");

f2.add(text, "maxSize");

f2.add(text, "message");

 

f2.open();

 

 

 

 

 

 

 

 

 

2/6

颜色值的输入

提供4种类型颜色输入控制

CSS

RGB

RGBA

Hue

var Options = function() {

  this.color0 = "#ffae23"; // CSS string

  this.color1 = [ 0, 128, 255 ]; // RGB array

  this.color2 = [ 0, 128, 255, 0.3 ]; // RGB with alpha

  this.color3 = { h: 350, s: 0.9, v: 0.3 }; // Hue, saturation, value

};

window.onload = function() {

 

  var options = new Options();

  var gui = new dat.GUI();

 

  gui.addColor(options, "color0");

  gui.addColor(options, "color1");

  gui.addColor(options, "color2");

  gui.addColor(options, "color3");

};

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3/6

存储

可以使用 remember 方法开启 GUI 的存储模式,而且可以分组存储

var Options = function() {

  this.color0 = "#ffae23"; // CSS string

};

window.onload = function() {

  var options = new Options();

  var gui = new dat.GUI();

 

  gui.remember(options);

  

  gui.addColor(options, "color0");

};

 

 

 

 

 

 

 

 

 

当然你也可以把之前保存的数据在初始化时导入

var Options = function() {

  this.number = 1;

};

window.onload = function() {

  var options = new Options();

  var gui = new dat.GUI({

    load:{

      "preset": "kkkkk",

      "closed": false,

      "remembered": {

        "Default": {

          "0": {

            "number": 4

          }

        },

        "kkkkk": {

          "0": {

            "number": 6

          }

4/6

        }

      },

      "folders": {}

    }

  });

 

  gui.remember(options);

  gui.add(options, "number").min(0).max(10).step(1);

};

可以通过preset 配置项指定使用哪个分组的配置

 

 

 

 

 

 

 

 

 

事件

你可以为每一项设置一个监听事件 onChange 和 onFinishChange

var Options = function() {

  this.number = 1;

};

window.onload = function() {

  var options = new Options();

  var gui = new dat.GUI();

  var controller = gui.add(options, "number").min(0).max(10).step(1);

 

  controller.onChange(function(value) {

    console.log("onChange:" + value)

  });

 

  controller.onFinishChange(function(value) {

    console.log("onFinishChange" + value)

  });

};

获取面板DOM对象

5/6

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:datgui控件解读  控件  控件词条  解读  解读词条  datgui  datgui词条