패키지 | flash.utils |
클래스 | public class Timer |
상속 | Timer EventDispatcher Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
start()
메서드를 사용합니다. 타이머 간격에 따라 실행할 코드를 설정하려면 timer
이벤트에 대한 이벤트 리스너를 추가합니다.
지정된 간격마다 반복 실행하거나 한 번만 실행할 Timer 객체를 만들어 일정에 따라 코드를 실행할 수 있습니다. SWF 파일의 프레임 속도나 런타임의 환경(사용 가능한 메모리 및 기타 요인)에 따라 런타임에서 이벤트를 전달하는 간격이 조금씩 어긋날 수 있습니다. 예를 들어 80밀리초마다 이벤트가 발생하도록 타이머를 설정했지만 SWF 파일을 10fps(초당 프레임 수), 즉 100밀리초 간격으로 재생하도록 설정한 경우 100밀리초에 가까운 간격으로 이벤트가 전달됩니다. 메모리 사용량이 많은 스크립트의 경우에도 이벤트가 어긋날 수 있습니다.
속성 | 정의 주체 | ||
---|---|---|---|
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
currentCount : int [읽기 전용]
0에서 시작한 후 타이머가 발생한 총 횟수입니다. | Timer | ||
delay : Number
타이머 이벤트 사이의 밀리초 단위 지연 시간입니다. | Timer | ||
repeatCount : int
타이머가 실행되도록 설정된 총 횟수입니다. | Timer | ||
running : Boolean [읽기 전용]
타이머의 현재 상태입니다. 타이머가 실행 중이면 true이고 그렇지 않으면 false입니다. | Timer |
메서드 | 정의 주체 | ||
---|---|---|---|
지정된 지연 및 반복 횟수 상태를 사용하여 새 Timer 객체를 만듭니다. | Timer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다. | EventDispatcher | ||
이벤트를 이벤트 흐름으로 전달합니다. | EventDispatcher | ||
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
EventDispatcher 객체에서 리스너를 제거합니다. | EventDispatcher | ||
초시계의 리셋 버튼과 같이 타이머가 실행 중이면 타이머를 중지하고 currentCount 속성을 다시 0으로 설정합니다. | Timer | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
타이머가 이미 실행 중이 아니면 타이머를 시작합니다. | Timer | ||
타이머를 중지합니다. | Timer | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object | ||
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher |
이벤트 | 요약 | 정의 주체 | ||
---|---|---|---|---|
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다. | EventDispatcher | |||
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다. | EventDispatcher | |||
Timer 객체가 Timer.delay 속성에 따라 지정된 간격에 도달할 때마다 전달됩니다. | Timer | |||
Timer.repeatCount에 설정된 요청 수가 완료될 때마다 전달됩니다. | Timer |
currentCount | 속성 |
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 | 속성 |
Timer | () | 생성자 |
public function Timer(delay:Number, repeatCount:int = 0)
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0, Flash Player 9, Flash Lite 4 |
지정된 delay
및 repeatCount
상태를 사용하여 새 Timer 객체를 만듭니다.
타이머는 자동으로 시작되지 않으며 start()
메서드를 호출해야 타이머가 시작됩니다.
delay:Number — 타이머 이벤트 사이의 지연 시간(밀리초)입니다. 20밀리초보다 짧은 delay 는 권장되지 않습니다. 타이머 빈도는 초당 60프레임으로 제한됩니다. 다시 말해 16.6밀리초보다 짧은 지연은 런타임 문제를 일으킵니다.
| |
repeatCount:int (default = 0 ) — 반복 횟수를 지정합니다. 이 값이 0인 경우 타이머는 최대 24.86일(int.MAX_VALUE + 1)까지 무한 반복합니다. 0이 아니면 타이머가 지정된 횟수만큼 실행된 다음 중지됩니다.
|
오류
Error — 지정된 지연 시간이 음수이거나 유한수가 아닌 경우입니다.
|
예제 ( 예제 사용 방법 )
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
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
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
속성 값을 정의합니다.
이 이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 요청이 완료된 Timer 객체입니다. |
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); } } }
Tue Jun 12 2018, 03:17 PM Z