在示例模式下调用一个新的p5示例时,我需要传入一个额外的参数。
我希望能够做到这一点:
var x = 50;
var sketch = function(p5){
p5.setup = function(x){
// Canvas setup etc
rect(x,40,40,40)
}
}
new p5(sketch, x)
现在,它显示为undefined
,这让我相信new p5
只能接受一个参数,有没有一个方法可以让我在不修改p5的情况下向一个示例传递额外的参数?
3条答案
按热度按时间voj3qocg1#
是的,你不能像这样给
p5
对象添加随机参数,还要注意p5
构造函数和setup()
函数是两个完全不同的东西,你调用构造函数,P5.js库为你调用setup()
函数。我真的不知道你想做什么,为什么不去掉
x
参数(它是未定义的)并引用顶层的x
变量(它是50)呢?你也许可以做一些有点傻的事情,比如:
然后你可以做:
不过,这也太恶心了。
**编辑:**您还可以执行以下操作:
这样做是因为
sketch
是您创建的p5
的示例,所以您可以向p5
示例添加属性,然后将其传递给sketch函数。1l5u6lss2#
总结一下@KevinWorkman的回答,您不能向
new p5()
传递额外的参数,也不能期望p5.setup
具有额外的参数,但是可以使用closures:变量
x
在p5.setup
函数中仍然可以访问。如果在调用
new p5(sketch)
之前更改x
,则将使用新值绘制矩形。pftdvrlh3#
将数据传递给草图的一种方法是将数据添加到画布 Package 器元素,并在草图函数中读取它。