我的文档中有多个草图的实例。如何使用屏幕刷新重新运行特定的实例化?
假设我有:
function buildSketch(){
var sketch1 = function(sketch){
sketch.setup = function(){
//Do my thing
}
}
new p5(sketch1);
}
function buildSecondSketch(){
var sketch2 = function(sketch){
sketch.setup = function(){
//Do my thing
}
}
new p5(sketch2);
}我知道如果我将sketch附加到窗口对象,我可以刷新,但这似乎.哈奇,例如:
function buildSecondSketch(){
window.sketch = sketch // Adding this seems to help
var sketch2 = function(sketch){
sketch.setup = function(){
//Do my thing
}
}
new p5(sketch2);
}然后我就会:
sketch.setup()这很管用。但我不知道为什么会这样。
发布于 2017-09-20 16:39:33
您应该自己调用而不是调用setup()函数。
最简单的方法可能是在每个草图中添加一个refresh()函数。这个函数会通过将任何草图级变量设置回原来的值,从而将草图的状态重新设置。那就打电话给那个函数。这基本上是通过自己调用setup()来完成的,但是避免了P5.js内部自动函数调用的短路。
无论哪种方式,您都必须保持对草图变量的引用。您可以使用window.sketch (它只是创建一个全局变量)来实现这一点,也可以在buildSketch()函数之外声明它们。
您还可以删除旧的p5实例并恢复它们,但这需要保持对每个p5实例的引用。
https://stackoverflow.com/questions/46317809
复制相似问题