使用setInterval()和类– p5.js交换图像

时间:2018-12-06 11:52:54

标签: javascript class setinterval p5.js

我正在研究p5.js上的项目

我的目标是像本示例here那样每隔X秒交换一次图像。

问题在于,当I try to do the same with a class object时,setInterval()不再起作用。

可能与范围有关吗?

1 个答案:

答案 0 :(得分:0)

让我们从一个简单的示例开始:

class Test {
  constructor(testMessage) {
    this.testMessage = testMessage;
  }
  show() {
    println(this.testMessage);
  }
}

您期望这段代码会发生什么?

var message = 'hello';
var test = new Test(message);
message = 'goodbye';
test.show();

您的代码现在工作的方式,看起来您希望它可以打印'goodbye',但实际上,它将打印'hello'

这是因为您要将变量的传递到Test构造函数中。现在,您有两个变量指向相同的'hello'值。然后,您修改第一个变量,但这不会自动更改第二个变量的值

要解决此问题,您可以只使用单个全局message变量,如下所示:

class Test {
  show() {
    println(message);
  }
}

var message = 'testing';
var test = new Test();
test.show();

或者您可以创建类似setMessage()函数的方法,使您可以更改类中的值:

class Test {
  constructor(testMessage) {
    this.testMessage = testMessage;
  }
  show() {
    println(this.testMessage);
  }
  setMessage(testMessage) {
    this.testMessage = testMessage;
  }
}