首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新p5的实例化

刷新p5的实例化
EN

Stack Overflow用户
提问于 2017-09-20 09:08:48
回答 1查看 903关注 0票数 2

我的文档中有多个草图的实例。如何使用屏幕刷新重新运行特定的实例化?

假设我有:

代码语言:javascript
复制
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附加到窗口对象,我可以刷新,但这似乎.哈奇,例如:

代码语言:javascript
复制
 function buildSecondSketch(){

 window.sketch = sketch // Adding this seems to help

  var sketch2 = function(sketch){
    sketch.setup = function(){
      //Do my thing
    }
  }

  new p5(sketch2); 

}

然后我就会:

代码语言:javascript
复制
sketch.setup()

这很管用。但我不知道为什么会这样。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-20 16:39:33

您应该自己调用而不是调用setup()函数。

最简单的方法可能是在每个草图中添加一个refresh()函数。这个函数会通过将任何草图级变量设置回原来的值,从而将草图的状态重新设置。那就打电话给那个函数。这基本上是通过自己调用setup()来完成的,但是避免了P5.js内部自动函数调用的短路。

无论哪种方式,您都必须保持对草图变量的引用。您可以使用window.sketch (它只是创建一个全局变量)来实现这一点,也可以在buildSketch()函数之外声明它们。

您还可以删除旧的p5实例并恢复它们,但这需要保持对每个p5实例的引用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46317809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档