2013-05-17 2 views
0

과제로 5 분 카운트 다운 클럭을 만들어야합니다. 나는 as3의 기초를 받았고 'Start'- 'Reset'- 'Stop'버튼을 추가하라고했습니다. 지금까지 나는 존경할만한 카운트 다운을 가졌지 만 그것을 제어 할 방법이 없다. 나는 as2와 flash를 처음 사용하기 때문에 이것이 "당신이 알고 있다면, 당신은 당신의 대답을 알아야합니다"상황 중 하나가 아니기를 바랍니다. 웹에서 찾기를 시도하는 모든 것은 실제로 나를 도와주지 않습니다. 만약 누군가가 위에서 언급 한 것을 수행하기 위해이 코드에 버튼을 쓸 수 있다면 올바른 경로 또는 이브에 있는지 알 수 있다면 말입니다. ADV 감사 :)이로버튼으로 5 분 카운트 다운

var secs = "0" + 0; 
    var mins = 5; 
    timerDisplay.text = mins + ":" + secs; 

    var timerInterval = setInterval(countDown,1000); 
    //DISPLAYS DYNAMIC TEXT 
    function countDown() 
    { 
     secs--; 
     if (secs < 0) 
     { 
      secs = 59; 
      mins--; 
     } 
     if (secs < 10) 
     { 
      var secs2 = "0" + secs; 
     } 
     else 
     { 
      var secs2 = secs; 
     } 

     if (mins == 0 && secs == 0) 
     { 
      clearInterval(timerInterval);//STOPS TIME @ ZERO 
     } 
     timerDisplay.text = mins + ":" + secs2; 
    } 

답변

1

내가 당신에게 코드, 자신을 쓰기에 당신의 방법에 당신을 얻을 단지 몇 가지 아이디어를 제공하지 않습니다, 과제입니다.

무대에 두 개의 버튼 (세 개)을 추가 할 수 있습니다. 하나의 버튼은 리셋 버튼 일 수 있고 다른 버튼은 타이머가 현재 실행 중인지 여부에 따라 시작 및 중지 사이에서 교환되는 버튼 일 수 있습니다.

리셋 버튼에 필요한 유일한 코드는 min 변수와 secs 변수를 원래 값으로 설정합니다 (간격 코드 때문에 1 초 더하기). 버튼을 클릭하여 시작하는 데 도움이 필요한 경우 기능을 던지려면 mc.onPress 메소드를 확인하십시오.

중지 버튼에 필요한 유일한 코드는 간격 카운터가 계속 계산되지 않도록하는 코드입니다. 나는 당신이 이미 무언가를 가지고 있다고 믿는다. 타이머를 0으로 "지울 때"이다.

시작 버튼에 필요한 유일한 코드는 간격 카운터를 다시 시작하는 코드입니다. timerInterval을 처음 시작할 때 일종의 일을합니다.

누군가가 카운트 다운을 마친 후에 또는 시작 버튼을 여러 번 클릭하기로 결정한 경우 시작 버튼을 클릭하기로 결정하면 작동하지 않습니다.

첫 번째 경우 카운트 다운은 음수로 계속되므로 if (시작 버튼 기능 내부에서)를 허용하지 않는 if 문을 작성해야 할 수 있습니다.

두 번째 경우에는 버튼을 누를 때마다 카운트 다운이 빨라지고 빨라집니다. 프로그램이 중지되었는지 여부를 추적하는 부울을 작성하면 그 문제를 해결하는 데 도움이 될 수 있습니다.

위의 인터벌 코드에 대한 설명을 명확히하기 위해 : 귀하의 코드는 1000 밀리 초마다 영원히 감소 할 것입니다. 텍스트 상자는 감소 할 때만 새로 고쳐 지므로 정확히 5 분 0 초로 재설정하려고하면 숫자가 4:59로 점프 한 다음 감소합니다. 5 분 1 초로 재설정하면 숫자가 5시 방향으로 점프 한 다음 거기에서 감소합니다.

이 정보가 도움이되기를 바랍니다.

+0

도움 주셔서 감사합니다, Enigmaden. 내가 집에 갈 때 그걸 시험해 볼게. @ adninav - 고마워,하지만 난 좀 더 techy : P를 찾고 있었어. – user2392818

0
package 
{ 
import flash.display.MovieClip; 
import flash.events.Event; 
import flash.utils.Timer; 
import flash.events.TimerEvent; 

public class Test extends MovieClip { 
    private var _timer:Timer = null; 
    private var _repeatCount:int = 0; 
    private var _totalMinutes:int = 5; 

    public function Test() : void { 
     addEventListener(Event.ADDED_TO_STAGE, _Init); 

    } 

    private function _Init(e:Event) : void { 
     _repeatCount = _totalMinutes * 60; 
     _timer = new Timer(1000, _repeatCount); 
     _timer.addEventListener(TimerEvent.TIMER, _OnTimerFired); 
     _timer.start(); 
    } 

    private function _OnTimerFired(e:TimerEvent) : void { 
     var minRem:int = (_repeatCount - _timer.currentCount)/60 ; 
     var secRem:int = (_repeatCount - _timer.currentCount) % 60; 
     trace(minRem + ":" + secRem); 
    } 
} 
}