2016-12-26 13 views
2

반응 시간을 테스트하고 다음 프레임으로 진행하는이 코드를 작성했습니다. 상자를 표시 한 다음 상자가 나타날 때와 사용이 [A]를 누를 때의 시간 차이를 나타냅니다. Heer가 내 코드입니다.Animate CC는 gotoAndStop을 주석 처리하여 다음 프레임으로 이동합니까?

import flash.utils.Timer; 
import flash.events.Event; 
import flash.utils.getTimer; 

stop(); 
    var canPress = false; 
    var startClock:Timer = new Timer(4000+Math.random()*6000, 1); 
    grbox.y = -500; 
    startClock.start(); 
    var startTime:int = 0; 

function displayBox(evt:Event):void{ 
    canPress = true; 
    grbox.y = 143; 
    var startTime:int = getTimer(); 
} 

function Tpressed(e:KeyboardEvent):void 
{ 
    if(e.keyCode==Keyboard.A){ 
     if(canPress==true){ 
     var endTime:int = getTimer(); 
     score1 = endTime-startTime; 

     if(score2<0){ 
      //gotoAndStop(3); 
     } 
     else{ 
      //gotoAndStop(4); 
     } 
    } 
    } 

} 

stage.addEventListener(KeyboardEvent.KEY_DOWN, Tpressed); 
startClock.addEventListener(TimerEvent.TIMER, displayBox); 

[A] 버튼을 스팸하면 다음 프레임으로 넘어갑니다. 왜 이런 일이 일어 났습니까?!?! 내 'gotoAndStop (4);' 명령은 주석 처리되었으므로 무엇이든, 아직 그렇습니다.

편집 : https://drive.google.com/open?id=0BxtLreFIVnSWR2VPSGdSaHZGaVk RAW CODE : https://docs.google.com/document/d/1GRZIaKAdRNu3z3aPjjXNcgqMl2BhR-ZBT6gU7OeSbWQ/edit?usp=sharing

+0

:

는 다음과 같다 없습니다. 다른 곳에서는 청취자가 없습니까? 사각의 무비 클립 에서처럼? –

+0

나는 그렇게 생각하지 않는다. 내가 가지고있는 단 두 명의 청취자가 내 코드에있다. 도움이된다면 프로젝트 파일을 업로드 할 수 있습니까? – user2789610

+0

다른 버튼을 누르면 발생합니까? 아니면 그냥? –

답변

2

당신의 프레임 중 하나에 당신이 무대에 키 입력에 대한 이벤트 리스너를 추가 여기 내 .FLA 파일입니다. 그게 아마 당신 문제가있는 곳일거야. 따라서 아무 키나 누르면 기능뿐만 아니라 pressed 기능이 호출됩니다. 그리고 각 함수에서 검사중인 키가 "A"이기 때문에 두 함수 모두 if 블록을 실행합니다. 그리고 모두 if 블록은 gotoAndStop 메소드를 호출합니다.

전체 그림에서 수행하려는 것을 정확히 알지 못하면 해당 프레임을 떠날 때 pressed 함수의 이벤트 수신기를 제거하면이 문제가 해결 될 수 있습니다. 이상한

function pressed(e:KeyboardEvent):void 
{ 
    if(e.keyCode==Keyboard.A){ 
     gotoAndStop(Math.round(Math.random()+2)); 
     // remove the event listener since we are leaving this frame and you apparently only want this function to work on this frame 
     stage.removeEventListener(KeyboardEvent.KEY_DOWN, pressed); 
    } 
} 
+0

고마워요! 내 코드를 편집하고 곧 돌아올 것입니다. 다시 한 번 감사드립니다. – user2789610