Pakiet | flash.utils |
Klasa | public class Timer |
Dziedziczenie | Timer EventDispatcher Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
start()
. W celu skonfigurowania kodu, jaki ma zostać wykonany dla przedziału czasowego obiektu timer, należy dodać detektor zdarzeń dla zdarzenia timer
.
Istnieje możliwość tworzenia obiektów Timer, które będą uruchamiane jednorazowo lub w określonych odstępach czasu, co umożliwia wykonywanie kodu zgodnie z harmonogramem. W zależności od szybkości klatek pliku SWF lub środowiska wykonawczego (dostępna pamięć i inne czynniki), środowisko wykonawcze może wywoływać zdarzenia z nieznacznym przesunięciem. Przykład: jeśli plik SWF jest ustawiony na odtwarzanie z szybkością 10 klatek na sekundę, co jest równoważne przedziałowi czasowemu 100 milisekund, ale dla obiektu timer ustawiono uruchamianie zdarzenia co 80 milisekund, zdarzenie zostanie uruchomione blisko przedziału 100 milisekund. Przesunięcie uruchamiania zdarzeń może być również spowodowane wykonywaniem skryptów, które w znacznym stopniu obciążają pamięć.
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
currentCount : int [tylko do odczytu]
Całkowita liczba uruchomień czasomierza z zerowym czasem początkowym. | Timer | ||
delay : Number
Opóźnienie między zdarzeniami czasomierza (w milisekundach). | Timer | ||
repeatCount : int
Całkowita liczba uruchomień czasomierza. | Timer | ||
running : Boolean [tylko do odczytu]
Bieżący stan zdarzenia timer; true — jeśli zdarzenie timer działa, false — w przeciwnym wypadku. | Timer |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
Tworzy nowy obiekt Timer o określonym opóźnieniu oraz określonych stanach. | Timer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Rejestruje obiekt detektora zdarzeń w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu. | EventDispatcher | ||
Wywołuje zdarzenie, tj. kieruje je do przepływu zdarzeń. | EventDispatcher | ||
Sprawdza, czy obiekt EventDispatcher zawiera jakiekolwiek detektory zarejestrowane dla konkretnego typu zdarzeń. | EventDispatcher | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Usuwa detektor z obiektu EventDispatcher. | EventDispatcher | ||
Zatrzymuje czasomierz (jeśli działa) i ustawia jego właściwość currentCount z powrotem na 0. | Timer | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
Uruchamia czasomierz, o ile jeszcze nie działa. | Timer | ||
Zatrzymuje czasomierz. | Timer | ||
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | ||
Zwraca ciąg reprezentujący określony obiekt. | Object | ||
Zwraca pierwotną wartość dla określonego obiektu. | Object | ||
Sprawdza, czy detektor zdarzeń określonego typu jest zarejestrowany w tym obiekcie EventDispatcher lub jego elementach macierzystych. | EventDispatcher |
Zdarzenie | Podsumowanie | Zdefiniowane przez | ||
---|---|---|---|---|
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja środowiska wykonawczego AIR uzyskuje fokus w systemie operacyjnym i przechodzi w stan aktywny. | EventDispatcher | |||
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja AIR traci fokus w systemie operacyjnym i przechodzi w stan nieaktywny. | EventDispatcher | |||
Dysponowana za każdym razem, gdy obiekt Timer osiąga przedział czasowy określony za pomocą właściwości Timer.delay. | Timer | |||
Wywoływane za każdym razem, gdy zakończono liczbę żądań określonych za pomocą właściwości Timer.repeatCount. | Timer |
currentCount | właściwość |
currentCount:int
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Całkowita liczba uruchomień czasomierza z zerowym czasem początkowym. Jeśli licznik zdarzeń timer został wyzerowany, zliczane są tylko uruchomienia od momentu zerowania.
Implementacja
public function get currentCount():int
delay | właściwość |
delay:Number
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Opóźnienie między zdarzeniami czasomierza (w milisekundach). Jeśli podczas działania zdarzenia timer zostanie ustawione opóźnienie, zdarzenie timer zostanie zrestartowane w tej samej iteracji repeatCount
.
Uwaga: Nie zaleca się stosowania wartości delay
mniejszych niż 20 milisekund. Dokładność pomiaru czasu jest ograniczona do 60 klatek na sekundę, co oznacza, że opóźnienia mniejsze niż 16,6 milisekund powodują problemy w czasie wykonywania aplikacji.
Implementacja
public function get delay():Number
public function set delay(value:Number):void
Zgłasza
Error — Zwraca wyjątek, jeśli określone opóźnienie jest ujemne lub nie jest liczbą skończoną.
|
repeatCount | właściwość |
repeatCount:int
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Całkowita liczba uruchomień czasomierza. Jeśli liczba powtórzeń jest ustawiona na 0, zdarzenie timer jest powtarzane bez przerwy — maksymalnie przez 24,86 dnia, do czasu wywołania metody stop()
albo do czasu wyłączenia programu. Jeśli liczba powtórzeń nie jest równa zero, zdarzenie timer jest powtarzane określoną ilość razy. Jeśli wartość repeatCount
jest równe liczbie, która jest taka sama lub mniejsza niż wartość currentCount
, zdarzenie timer zostanie zatrzymane i nie zostanie uruchomione ponownie.
Implementacja
public function get repeatCount():int
public function set repeatCount(value:int):void
running | właściwość |
Timer | () | Konstruktor |
public function Timer(delay:Number, repeatCount:int = 0)
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Tworzy nowy obiekt Timer o określonych wartościach delay
i repeatCount
.
Zdarzenie timer nie jest uruchamiane automatycznie; w celu jego uruchomienia należy wywołać metodę start()
.
delay:Number — Opóźnienie między zdarzeniami timer, w milisekundach. Nie zaleca się stosowania wartości delay mniejszych niż 20 milisekund. Dokładność pomiaru czasu jest ograniczona do 60 klatek na sekundę, co oznacza, że opóźnienia mniejsze niż 16,6 sekundy powodują problemy w czasie wykonywania aplikacji.
| |
repeatCount:int (default = 0 ) — Określa liczbę powtórzeń. Wartość zerowa oznacza powtarzanie zdarzenia timer nieskończenie długo do maksymalnie 24,86 dnia (int.MAX_VALUE + 1). Jeśli liczba nie jest równa zero, zdarzenie timer jest powtarzane określoną ilość razy, po czym zostaje zatrzymane.
|
Zgłasza
Error — jeśli określone opóźnienie jest ujemne lub nie jest liczbą skończoną
|
Przykład ( Sposób korzystania z tego przykładu )
Tworzony jest obiekt Timer, który jest uruchamiany w ciągu 30 sekund (opóźnienie jest ustawione na 30000 milisekund) i jest powtarzany trzykrotnie, co w sumie daje 90 sekund. (Zdarzenie timer zostaje zatrzymane po trzecim razie).
Dwa detektory zdarzeń są dodawane do obiektu myTimer
. Pierwszy jest uruchamiany przez zdarzenie TimerEvent.TIMER
, które występuje zawsze po uruchomieniu obiektu timer. Metoda timerHandler()
zmienia tekst w polu statusTextField
w celu zaprezentowania liczby pozostałych sekund.
Uwaga: Klasa Timer kontroluje liczbę uruchomień (repeats
), zwiększając liczbę we właściwości currentCount
).
Gdy zdarzenie timer zostanie wywołane po raz ostatnie, wywoływane jest zdarzenie TimerEvent.TIMER_COMPLETE
oraz metoda completeHandler()
. Metoda completeHandler()
zmienia typ pola tekstowego inputTextField
z INPUT
na DYNAMIC
, co oznacza, że użytkownik nie może wprowadzać ani zmieniać tekstu.
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 | () | metoda |
public function reset():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zatrzymuje zdarzenie timer, jeśli ono działa, i ustawia dla właściwości currentCount
ponownie wartość 0 — działa jak przycisk zerowania w stoperze. Następnie po wywołaniu metody start()
instancja timer jest powtarzana określoną ilość razy, którą określa wartość repeatCount
.
Powiązane elementy interfejsu API
start | () | metoda |
public function start():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Uruchamia czasomierz, o ile jeszcze nie działa.
stop | () | metoda |
public function stop():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Zatrzymuje czasomierz. Gdy metoda start()
zostaje wywołana po wywołaniu metody stop()
, instancja timer jest powtarzana określoną ilość raz (remaining), którą definiuje właściwość repeatCount
.
Powiązane elementy interfejsu API
timer | Zdarzenie |
flash.events.TimerEvent
właściwość TimerEvent.type =
flash.events.TimerEvent.TIMER
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wywoływana za każdym razem, gdy obiekt Timer osiąga przedział czasowy określony za pomocą właściwości Timer.delay
.
type
obiektu zdarzenia timer
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Obiekt Timer osiągnął koniec przedziału czasowego. |
timerComplete | Zdarzenie |
flash.events.TimerEvent
właściwość TimerEvent.type =
flash.events.TimerEvent.TIMER_COMPLETE
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Wywoływana za każdym razem, gdy zakończono liczbę żądań określonych za pomocą właściwości Timer.repeatCount
.
type
obiektu zdarzenia timerComplete
.
To zdarzenie ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Obiekt Timer, który ukończył realizację swoich żądań. |
TimerExample
w celu przedstawienia sposobu ustawienia metody timerHandler()
wykrywania w taki sposób, aby wykrywała nowe zdarzenia TimerEvent, które mają zostać wywołane. Obiekt timer został uruchomiony po wywołaniu metody start()
i po tym czasie wywoływane są zdarzenia timer.
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, 12:06 PM Z