所以我在可汗学院做了这个,想把它放在我的网站上。
https://www.khanacademy.org/cs/fade-away/4830224329998336
为了将其转换为 JavaScript,我将代码放入下面。不幸的是我得到了错误:您正在混合事件和静态模式。为什么这适用于可汗学院处理而不适用于正常处理?还有什么其他方法可以编写它以使其工作?
//don't forget to click!!!
background(2, 3, 3);
strokeWeight(2);
var x = random;
void setup(){
size(500,500);
}
void draw(){
fill(0, 0, 0, 20);
rect(0,0, 400,400);
var randomSize = random(20, 60);
if (mouseIsPressed) {
noStroke();
fill(random(0, 255), random(0, 255), random(0, 255), 373);
}
else {
noStroke();
fill(255, 0, 0, 15);
randomSize=50;
}
ellipse(mouseX, mouseY, randomSize, randomSize);
};
最佳答案
您的代码有几个问题。首先,您不能在 draw()
和 setup()
之外进行函数调用——这就是导致“active vs static”错误的原因。将它们移动到 setup()
中。第二,处理中没有mouseIsPressed
,但是有mousePressed
。在 draw()
的右大括号后也不需要分号。您还使用 400
的硬编码值来绘制矩形,而窗口本身是 500
x500
。无论如何你不应该使用这样的硬编码数字,使用内置的 width
和 height
常量。最后,您从不使用变量 x
,所以我将其注释掉了。这是有效的代码(并且在格式方面进行了清理)。
//don't forget to click!!!
void setup() {
size(500, 500);
background(2, 3, 3);
strokeWeight(2);
//var x = random;
}
void draw() {
fill(0, 0, 0, 20);
rect(0, 0, width, height);
var randomSize = random(20, 60);
noStroke();
if (mousePressed) {
fill(random(0, 255), random(0, 255), random(0, 255), 373);
} else {
fill(255, 0, 0, 15);
randomSize=50;
}
ellipse(mouseX, mouseY, randomSize, randomSize);
}
关于javascript - 处理可汗学院 vs 处理 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22057748/