javascript - 处理可汗学院 vs 处理 2

标签 javascript processing 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);
};

最佳答案

您的代码有几个问题。首先,您不能在 draw()setup() 之外进行函数调用——这就是导致“active vs static”错误的原因。将它们移动到 setup() 中。第二,处理中没有mouseIsPressed,但是有mousePressed。在 draw() 的右大括号后也不需要分号。您还使用 400 的硬编码值来绘制矩形,而窗口本身是 500x500。无论如何你不应该使用这样的硬编码数字,使用内置的 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);
}

关于javascript - 处理可汗学院 vs 处理 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22057748/

相关文章:

javascript - 在 Ext JS 经典主题中更改网格标题的默认颜色

Javascript Date() 初始化格式错误

javascript - 如何将 ng-model/$scope 与 Angular Factory 和 Controller 一起使用

processing - SuperCollider - 限制 Synth 实例

khan-academy - 通过可汗学院 API 获取文章

javascript - 我的Processing.js 程序中的所有 Angular 如何都以度而不是弧度为单位?

javascript - 可汗学院计算机编程中的 Math.random() 与 random()

javascript - 对象,参数,jquery

java - 如何在 Processing 中从网络摄像头捕获带音频的视频

formatting - 有没有美化处理草图的扩展?