2013-03-30 3 views
0

ms 단위로 연속 마우스 클릭 사이의 시간을 가져오고 싶습니다. 이것은 내가 시도 것입니다 :마우스 클릭 사이의 시간 processing.js

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이어야합니다. 그러나 첫 번째 클릭 이후에 구시가 설정되므로 위의 사항이 효과가 있습니다. 나는 첫 번째 전화가 NaN하지 않을 것이다 그래야()의 mousePressed 외부

var oldtime=new Date(); 

을 수행했지만, 행운.

도움을 주셔서 대단히 감사드립니다.

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

문제는 변수 "범위"로해야했다. 이것은이 방법 내장이 지금

var oldtime=new Date(); 

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

void draw(){ 
} 

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

무엇 세 개의 연속 클릭의 C1, C2, C3에서? –

+0

이 프로그램은 현재 클릭과 이전 클릭 사이의 시간을 인쇄합니다 : –

답변

0

작동/이것에 대한 기능은 날짜 클래스를 사용할 필요, millis()라고합니다. 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에 익숙하면 자바 스크립트에서 직접 처리하는 것이 유용 할 수 있습니다. 그렇게하면 필요한 것을 섞어서 일치시키고 표준 자바 스크립트 디버깅 도구를 사용하는 것이 쉽습니다. 여기에이 작업을 수행하는 방법에 대한 좋은 튜토리얼이있다 :

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