使用 setInterval() 和 class – p5.js 交换图像
Swap image using setInterval() with class – p5.js
我正在做一个关于 p5.js
的项目
我的目标是每 X 秒交换一次图像,就像我在这个例子中所做的那样 here。
问题是当 I try to do the same with a class object 时,setInterval() 不再起作用。
这可能与范围有关吗?
让我们从一个更简单的例子开始:
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'
.
这是因为您将变量的 value 传递给 Test
构造函数。您现在有两个变量指向相同的 'hello'
值。然后您修改第一个变量,,但这不会自动更改第二个变量的值。
要解决此问题,您可以只使用一个全局 message
变量,如下所示:
class Test {
show() {
println(message);
}
}
var message = 'testing';
var test = new Test();
test.show();
或者您可以创建类似于 setMessage()
函数的东西,允许您更改 class:
中的值
class Test {
constructor(testMessage) {
this.testMessage = testMessage;
}
show() {
println(this.testMessage);
}
setMessage(testMessage) {
this.testMessage = testMessage;
}
}
我正在做一个关于 p5.js
的项目我的目标是每 X 秒交换一次图像,就像我在这个例子中所做的那样 here。
问题是当 I try to do the same with a class object 时,setInterval() 不再起作用。
这可能与范围有关吗?
让我们从一个更简单的例子开始:
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'
.
这是因为您将变量的 value 传递给 Test
构造函数。您现在有两个变量指向相同的 'hello'
值。然后您修改第一个变量,,但这不会自动更改第二个变量的值。
要解决此问题,您可以只使用一个全局 message
变量,如下所示:
class Test {
show() {
println(message);
}
}
var message = 'testing';
var test = new Test();
test.show();
或者您可以创建类似于 setMessage()
函数的东西,允许您更改 class:
class Test {
constructor(testMessage) {
this.testMessage = testMessage;
}
show() {
println(this.testMessage);
}
setMessage(testMessage) {
this.testMessage = testMessage;
}
}