1

所以我在 khan-academy 上做了这个,并想把它放在我的网站上。

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);
};
4

1 回答 1

2

您的代码有几个问题。首先,您不能在draw()and之外进行函数调用setup()——这就是导致“活动与静态”错误的原因。将它们移到setup(). 其次,没有mouseIsPressed处理中的东西,但有mousePressed。在 .的右大括号后也不需要分号draw()。您还使用硬编码的值400来绘制矩形,而窗口本身是500x 500。无论如何,您都不应该使用这样的硬编码数字,而是使用内置widthheight常量。最后,你从不使用变量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);
}
于 2014-02-27T02:54:52.957 回答