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();

最初の呼び出しが NaN にならないように、mousePressed() の外側に配置しますが、うまくいきません。

助けてくれてありがとう。

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

問題は、変数「スコープ」に関係していました。これで動作します

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#javascriptonly処理コード

于 2013-03-30T18:43:42.980 に答える