Adobe® Flash® Platform용 ActionScript® 3.0 참조 설명서
 |  패키지 및 클래스 목록 숨기기 |  패키지  |  클래스  |  새로운 내용  |  색인  |  부록  |  영어로 표시되는 이유
필터: 서버에서 데이터를 검색하는 중...
서버에서 데이터를 검색하는 중...
flash.utils 

Timer  - AS3

패키지flash.utils
클래스public class Timer
상속Timer Inheritance EventDispatcher Inheritance Object

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

Timer 클래스는 지정된 시간 시퀀스에 따라 코드를 실행할 수 있는 타이머에 대한 인터페이스입니다. 타이머를 시작하려면 start() 메서드를 사용합니다. 타이머 간격에 따라 실행할 코드를 설정하려면 timer 이벤트에 대한 이벤트 리스너를 추가합니다.

지정된 간격마다 반복 실행하거나 한 번만 실행할 Timer 객체를 만들어 일정에 따라 코드를 실행할 수 있습니다. SWF 파일의 프레임 속도나 런타임의 환경(사용 가능한 메모리 및 기타 요인)에 따라 런타임에서 이벤트를 전달하는 간격이 조금씩 어긋날 수 있습니다. 예를 들어 80밀리초마다 이벤트가 발생하도록 타이머를 설정했지만 SWF 파일을 10fps(초당 프레임 수), 즉 100밀리초 간격으로 재생하도록 설정한 경우 100밀리초에 가까운 간격으로 이벤트가 전달됩니다. 메모리 사용량이 많은 스크립트의 경우에도 이벤트가 어긋날 수 있습니다.

예제 보기



공용 속성
 속성정의 주체
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  currentCount : int
[읽기 전용] 0에서 시작한 후 타이머가 발생한 총 횟수입니다.
Timer
  delay : Number
타이머 이벤트 사이의 밀리초 단위 지연 시간입니다.
Timer
  repeatCount : int
타이머가 실행되도록 설정된 총 횟수입니다.
Timer
  running : Boolean
[읽기 전용] 타이머의 현재 상태입니다. 타이머가 실행 중이면 true이고 그렇지 않으면 false입니다.
Timer
공용 메서드
 메서드정의 주체
  
Timer(delay:Number, repeatCount:int = 0)
지정된 지연 및 반복 횟수 상태를 사용하여 새 Timer 객체를 만듭니다.
Timer
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다.
EventDispatcher
 Inherited
이벤트를 이벤트 흐름으로 전달합니다.
EventDispatcher
 Inherited
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher 객체에서 리스너를 제거합니다.
EventDispatcher
  
초시계의 리셋 버튼과 같이 타이머가 실행 중이면 타이머를 중지하고 currentCount 속성을 다시 0으로 설정합니다.
Timer
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
  
타이머가 이미 실행 중이 아니면 타이머를 시작합니다.
Timer
  
타이머를 중지합니다.
Timer
 Inherited
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
 Inherited
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
이벤트
 이벤트 요약 정의 주체
 Inherited[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다.EventDispatcher
 Inherited[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다.EventDispatcher
  Timer 객체가 Timer.delay 속성에 따라 지정된 간격에 도달할 때마다 전달됩니다.Timer
  Timer.repeatCount에 설정된 요청 수가 완료될 때마다 전달됩니다.Timer
속성 세부 정보

currentCount

속성
currentCount:int  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

0에서 시작한 후 타이머가 발생한 총 횟수입니다. 타이머를 재설정한 경우 재설정 이후의 발생 횟수만 계산됩니다.



구현
    public function get currentCount():int

delay

속성 
delay:Number

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

타이머 이벤트 사이의 밀리초 단위 지연 시간입니다. 타이머가 실행 중일 때 지연 시간 간격을 설정하면 타이머가 동일한 repeatCount 반복으로 다시 시작됩니다.

참고: 20밀리초보다 짧은 delay는 권장되지 않습니다. 타이머 빈도는 초당 60프레임으로 제한됩니다. 다시 말해 16.6밀리초보다 짧은 지연은 런타임 문제를 일으킵니다.



구현
    public function get delay():Number
    public function set delay(value:Number):void

오류
Error — 지정된 지연 시간이 음수이거나 유한수가 아니면 예외가 발생합니다.

repeatCount

속성 
repeatCount:int

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

타이머가 실행되도록 설정된 총 횟수입니다. 반복 횟수를 0으로 설정하면 타이머가 최대 24.86일까지 무한히 실행되며, 타이머를 중지하려면 stop() 메서드를 호출하거나 프로그램을 중지해야 합니다. 반복 횟수를 0이 아닌 값으로 설정하면 타이머가 지정된 횟수만큼 실행됩니다. repeatCount의 총 횟수를 currentCount보다 작거나 같게 설정하면 타이머가 중지되어 다시 발생하지 않습니다.



구현
    public function get repeatCount():int
    public function set repeatCount(value:int):void

running

속성 
running:Boolean  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

타이머의 현재 상태입니다. 타이머가 실행 중이면 true이고, 그렇지 않으면 false입니다.



구현
    public function get running():Boolean
생성자 세부 정보

Timer

()생성자
public function Timer(delay:Number, repeatCount:int = 0)

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

지정된 delayrepeatCount 상태를 사용하여 새 Timer 객체를 만듭니다.

타이머는 자동으로 시작되지 않으며 start() 메서드를 호출해야 타이머가 시작됩니다.

매개 변수
delay:Number — 타이머 이벤트 사이의 지연 시간(밀리초)입니다. 20밀리초보다 짧은 delay는 권장되지 않습니다. 타이머 빈도는 초당 60프레임으로 제한됩니다. 다시 말해 16.6밀리초보다 짧은 지연은 런타임 문제를 일으킵니다.
 
repeatCount:int (default = 0) — 반복 횟수를 지정합니다. 이 값이 0인 경우 타이머는 최대 24.86일(int.MAX_VALUE + 1)까지 무한 반복합니다. 0이 아니면 타이머가 지정된 횟수만큼 실행된 다음 중지됩니다.

오류
Error — 지정된 지연 시간이 음수이거나 유한수가 아닌 경우입니다.

예제  ( 예제 사용 방법 )

다음 예제에서는 사용자가 입력 텍스트 필드에 90초 동안 응답을 입력할 수 있습니다. 또한 30초마다 상태 메시지를 통해 사용자에게 남은 시간 정보가 제공됩니다.

30초 안에 시작되고(지연 시간은 30,000밀리초로 설정됨) 총 90초 동안 세 번 반복되는 Timer 객체가 만들어집니다. 타이머는 세 번 반복된 후 중지됩니다.

myTimer 타이머에 필요한 두 개의 이벤트 리스너가 추가됩니다. 첫 번째 리스너는 TimerEvent.TIMER 이벤트에 의해 트리거되는데 이 이벤트는 타이머가 시작할 때마다 발생합니다. timerHandler() 메서드는 남은 시간을 반영하는 statusTextField 텍스트 필드의 텍스트를 변경합니다.

참고: Timer 클래스는 currentCount 속성의 수를 증가시켜서 시작(repeats)하는 데 필요한 횟수를 추적합니다.

일단 마지막 타이머가 호출되면 TimerEvent.TIMER_COMPLETE 이벤트가 전달되고 completeHandler() 메서드가 호출됩니다. completeHandler() 메서드는 inputTextField 텍스트 필드의 유형을 INPUT에서 DYNAMIC으로 변경하여 사용자가 더 이상 텍스트를 입력하거나 변경할 수 없도록 합니다.

package {
    import flash.display.Sprite;
    import flash.text.TextField;
    import flash.text.TextFieldType;
    import flash.text.TextFieldAutoSize;
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.events.Event;

    public class Timer_constructorExample extends Sprite {
            private var statusTextField:TextField = new TextField();        
            private var inputTextField:TextField = new TextField();
            private var delay:uint = 30000;
            private var repeat:uint = 3;
            private var myTimer:Timer = new Timer(delay, repeat);
            
        public function Timer_constructorExample() {
            inputTextField.x = 10;
            inputTextField.y = 10;
            inputTextField.border = true;
            inputTextField.background = true;
            inputTextField.height = 200;
            inputTextField.width = 200;
            inputTextField.multiline = true;
            inputTextField.wordWrap = true;
            inputTextField.type = TextFieldType.INPUT;

            statusTextField.x = 10;
            statusTextField.y = 220;
            statusTextField.background = true;
            statusTextField.autoSize = TextFieldAutoSize.LEFT;   

            myTimer.start(); 
            statusTextField.text = "You have " + ((delay * repeat) / 1000) 
                                 + " seconds to enter your response.";

            myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
            myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, completeHandler);

            addChild(inputTextField);
            addChild(statusTextField);
        }

        private function timerHandler(e:TimerEvent):void{
            repeat--;
            statusTextField.text = ((delay * repeat) / 1000) + " seconds left.";
        }

        private function completeHandler(e:TimerEvent):void {
            statusTextField.text = "Times Up.";
            inputTextField.type = TextFieldType.DYNAMIC;    
        }
    }
}
메서드 세부 정보

reset

()메서드
public function reset():void

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

초시계의 리셋 버튼과 같이 타이머가 실행 중이면 타이머를 중지하고 currentCount 속성을 다시 0으로 설정합니다. 그런 다음 start()를 호출하면 타이머 인스턴스가 repeatCount 값에 지정된 반복 횟수만큼 실행됩니다.

관련 API 요소

start

()메서드 
public function start():void

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

타이머가 이미 실행 중이 아니면 타이머를 시작합니다.

stop

()메서드 
public function stop():void

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

타이머를 중지합니다. stop()을 호출한 후에 start()를 호출하면 타이머 인스턴스가 repeatCount 속성에 설정된 반복 횟수 중 아직 실행되지 않은 나머지 횟수만큼 실행됩니다.

관련 API 요소

이벤트 세부 정보

timer

이벤트
이벤트 객체 유형: flash.events.TimerEvent
속성 TimerEvent.type = flash.events.TimerEvent.TIMER

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

Timer 객체가 Timer.delay 속성에 따라 지정된 간격에 도달할 때마다 전달됩니다.

timer 이벤트 객체의 type 속성 값을 정의합니다.

이 이벤트에는 다음과 같은 속성이 있습니다.

속성
bubblesfalse
cancelablefalse. 취소할 기본 비헤이비어가 없습니다.
currentTarget이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다.
target간격에 도달한 Timer 객체입니다.

timerComplete

이벤트  
이벤트 객체 유형: flash.events.TimerEvent
속성 TimerEvent.type = flash.events.TimerEvent.TIMER_COMPLETE

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 9, Flash Lite 4

Timer.repeatCount에 설정된 요청 수가 완료될 때마다 전달됩니다.

timerComplete 이벤트 객체의 type 속성 값을 정의합니다.

이 이벤트에는 다음과 같은 속성이 있습니다.

속성
bubblesfalse
cancelablefalse. 취소할 기본 비헤이비어가 없습니다.
currentTarget이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다.
target요청이 완료된 Timer 객체입니다.
TimerExample.as

다음 예제에서는 TimerExample 클래스를 사용하여 리스너 메서드 timerHandler()를 전달할 새 TimerEvent를 수신하도록 설정하는 방법을 보여 줍니다. 이 타이머는 start()를 호출할 때 시작되고, 그 시점이 지나면 타이머 이벤트가 전달됩니다.
package {
    import flash.utils.Timer;
    import flash.events.TimerEvent;
    import flash.display.Sprite;

    public class TimerExample extends Sprite {

        public function TimerExample() {
            var myTimer:Timer = new Timer(1000, 2);
            myTimer.addEventListener("timer", timerHandler);
            myTimer.start();
        }

        public function timerHandler(event:TimerEvent):void {
            trace("timerHandler: " + event);
        }
    }
}




[ X ]영어로 표시되는 이유
ActionScript 3.0 참조 설명서의 내용이 영어로 나타납니다.

ActionScript 3.0 참조 설명서 중 일부는 전체 언어로 번역되지 않았습니다. 언어 요소가 번역되지 않은 경우 영어로 나타납니다. 예를 들어 ga.controls.HelpBox 클래스는 어떤 언어로도 번역되지 않았습니다. 그러므로 한국어 버전의 참조 설명서에서 ga.controls.HelpBox 클래스는 영어로 나타납니다.