0

我想以毫秒为单位获得连续鼠标点击之间的时间。这是我尝试过的:

void setup(){
  size(512,512);
  background(100,100,0);
}

void draw(){
}

void mousePressed(){
  println(new Date() - oldtime);
  var oldtime=new Date();
  }

问题似乎是 processing.js 不记得调用 mousePressed() 之间的 oldtime 值。

在第一次调用时,之前没有鼠标点击,oldtime 未定义,时间应该是 NaN。但是在第一次点击之后,oldtime 就设置好了,所以上面应该可以工作。我试着做

var oldtime=new Date();

在 mousePressed() 之外,这样第一次调用就不会是 NaN,但没有运气。

非常感谢您的帮助。

============================

问题与变量“范围”有关。这现在有效

var oldtime=new Date();

void setup(){
  size(512,512);
  background(100,100,0);
}

void draw(){
}

void mousePressed(){
  println(new Date() - oldtime);
  oldtime=new Date();
  }
4

1 回答 1

0

有一个内置的方法/函数millis(),不需要使用 Date 类。也没有理由调用 var。我还将在 setup 方法中初始化您的类和变量。以下是这些更改在处理语法时在您的代码中的外观:

int oldtime;

void setup(){
  size(512,512);
  background(100,100,0);
  oldtime = millis()
}

void draw(){
}

void mousePressed(){
  println(millis() - oldtime);
  oldtime = millis()
}

如果您熟悉 JavaScript,您可能会发现直接在 javascript 中使用处理是有益的。这样就可以轻松混合和匹配您需要的内容并使用标准的 JavaScript 调试工具。这里有一个关于如何做到这一点的很棒的教程:

http://processingjs.org/articles/jsQuickStart.html#javascriptonlyprocessingcode

于 2013-03-30T18:43:42.980 回答