2014-10-04 135 views
0

我很新,dat.gui。据this little tutorial,您可以从GUI调用对象的功能,只需将它传递给GUI的add功能:带参数的Dat.gui函数调用?

gui.add(fizzyText, 'explode'); 

是否有可能参数传递给explode功能?

谢谢!

+0

不,你不能传递参数一个按钮的功能。你想要做什么?对多个按钮使用相同的功能? – manji 2014-10-05 06:36:23

+0

是manji,我知道我可以通过“onChange”回调获得类似的行为。但我只是想确保没有其他的路要走。 :-)如果你把它写成答案,我会标记为最佳答案。 – 2014-10-06 08:49:31

回答

1

无法将参数传递给按钮的函数。但是,您可以访问对象的其他属性在功能:

function myViewModel() { 
    var self = this; 

    this.name = "name1", 
    this.score = 9, 
    this.check = function() { 
     if(self.score >= 5) { // access to the score property 
      alert('you pass!'); 
     } else { 
      alert('try again.'); 
     } 
    } 
}; 
0

您可以传递一些参数爆炸(),如果你通过创建Function.bind()此功能的副本。

 
gui.add({explode : fizzyText.explode.bind(this, param_1, param_2)}, "explode");

更多信息Function.prototype.bind()


我也不得不这样做,重用我的功能和它的工作对我罚款这样的:)