2013-03-26 4 views
1

좋아, 그래서 javafx, netbeans 6.9.1 버전에 문제가있다 (나는 조금 오래된 것을 알고 있지만 나는 학교에 대한 최종 할당을 위해 이것을해야한다). 할당을 위해서 저는 메모리 게임 (집중력)을 코딩해야합니다. 이제 딜레이를 프로그램하고 싶습니다. 그래서 카드를 뒤집을 때 함수는 1.5 초 정도 기다렸다가 돌아서 진 카드를 볼 수 있습니다. 그러나 1.5 초 표시를 기다리는 while 루프를 만들면 프로그램이 고정되고 변수 "time02"는 업데이트되지 않습니다. 난 그냥 고정 때문에 작업 관리자를 통해 수동으로 프로그램을 종료해야합니다. 다음은 타임 라인과 기능의 작은 부분이있는 코드 스 니펫입니다. 나는 이상하게도 충분히 "time01"변수를 업데이트하는 시계에 대한 타임 라인을 포함시켰다. 또한 주석에 지연 코드를 넣습니다.javafx 스크립트에서 지연 프로그래밍이 가능합니까?

clock = Timeline { 
    repeatCount: Timeline.INDEFINITE 
    keyFrames: KeyFrame { 
     time: 0.1s 
     action: function() { 
      updateclock(); 
     } 
    } 
} 
function updateclock() { 
    time01 = time01 + 1; 
    text2.content = "Tijd: {time01/10}"; 
} 


/* 
delay = Timeline { 
    repeatCount: Timeline.INDEFINITE 
    keyFrames: KeyFrame { 
     time: 0.1s 
     action: function() { 
      updatedelay(); 
     } 
    } 
} 

function updatedelay() { 
    time02 = time02 + 0.1; 
} 
*/ 

function control() { 
    if (counter == 2) { 
     /*          
     while (time02 < 1.2) { 
      delay.play(); 
     } 
     delay.stop(); 
     time02 = 0; 
     */ 
     .............................. 

어떤 유형의 도움이라도 대단히 감사하겠습니다.

답변

0

문제가 발생했습니다. 같은 스레드에서 계산되는 것을 기다릴 수는 없습니다.

Timeline에 카드를 뒤집어 놓는 코드를 넣으면 JavaFX가 대신 스레딩에 신경을 쓸 수 있습니다.

backflip : Timeline { 
    repeatCount: 1 
    keyFrames: KeyFrame { 
     time: 1.5s 
     action: function() { 
      // here is code which flips card back 
     } 
    } 
}