パッケージflash.utils
Classpublic class Timer
継承Timer Inheritance EventDispatcher Inheritance Object

Timer クラスはタイマーへのインターフェイスです。タイマーを使用すると、指定した時間系列に従ってコードを実行できます。タイマーを開始するには start() メソッドを使用します。timer イベントのイベントリスナーをセットアップコードに追加すると、そのタイマー間隔で実行されます。

Timer オブジェクトを作成して、1 回実行または指定した間隔で繰り返して定時にコードを実行できます。Flash Player または Adobe AIR では、SWF ファイルのフレームレートまたは Flash Player の環境 (使用可能なメモリやその他の要素) によっては、イベントを送出する間隔が少しずれる場合があります。たとえば、SWF ファイルを 10 fps (1 秒あたりのフレーム数)、つまり 100 ミリ秒間隔で再生するように設定し、80 ミリ秒でイベントが発生するようにタイマーを設定すると、100 ミリ秒に近い間隔でイベントが送出されます。また、メモリに負荷のかかるスクリプトでも、イベントの送出がずれる場合があります。

例を表示

関連項目

Working with dates and times
Controlling time intervals


パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  currentCount : int
[読み取り-専用] ゼロで開始してから現在までに起動されたタイマーの合計回数です。
Timer
  delay : Number
ミリ秒単位で指定したタイマーイベント間の遅延です。
Timer
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  repeatCount : int
タイマーを実行する合計回数を設定します。
Timer
  running : Boolean
[読み取り-専用] タイマーの現在の状態です。タイマーの実行中は true、それ以外は false です。
Timer
パブリックメソッド
 メソッド定義元
  
Timer(delay:Number, repeatCount:int = 0)
delay および repeatCount に指定した状態で、新しい 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
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント 概要 定義元
 InheritedFlash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
 InheritedFlash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
  Timer オブジェクトが Timer.delay プロパティに従って指定された時間間隔に達するたびに送出されます。Timer
  Timer.repeatCount で設定された数の要求が完了するたびに送出されます。Timer
プロパティの詳細
currentCountプロパティ
currentCount:int  [読み取り-専用]

ゼロで開始してから現在までに起動されたタイマーの合計回数です。タイマーをリセットした場合は、リセット以降の回数のみがカウントされます。


実装
    public function get currentCount():int
delayプロパティ 
delay:Number  [読み取り-書き込み]

ミリ秒単位で指定したタイマーイベント間の遅延です。タイマーの実行中に遅延間隔を設定すると、同じ repeatCount の繰り返し回数でタイマーが再起動されます。


実装
    public function get delay():Number
    public function set delay(value:Number):void

例外
Error — 指定した遅延がマイナスの場合、または有限数でない場合は、例外が発生します。
repeatCountプロパティ 
repeatCount:int  [読み取り-書き込み]

タイマーを実行する合計回数を設定します。繰り返し回数を 0 に設定すると、stop() メソッドが呼び出されるまで、またはプログラムによって停止されるまで、タイマーは無限に継続されます。繰り返し回数をゼロ以外に指定すると、タイマーは指定した回数実行されます。currentCount 以下の合計を repeatCount に設定するとタイマーは停止し、再起動されません。


実装
    public function get repeatCount():int
    public function set repeatCount(value:int):void
runningプロパティ 
running:Boolean  [読み取り-専用]

タイマーの現在の状態です。タイマーの実行中は true、それ以外は false です。


実装
    public function get running():Boolean
コンストラクタの詳細
Timer()コンストラクタ
public function Timer(delay:Number, repeatCount:int = 0)

delay および repeatCount に指定した状態で、新しい Timer オブジェクトを作成します。

タイマーが自動的に起動しない場合は、start() メソッドを呼び出して起動させる必要があります。

パラメータ
delay:Number — ミリ秒単位で指定したタイマーイベント間の遅延です。
 
repeatCount:int (default = 0) — 繰り返しの回数を指定します。ゼロを指定すると、タイマーは無限に繰り返されます。ゼロ以外に指定すると、タイマーは指定した回数実行された後に停止します。

例外
Error — 指定した遅延がマイナスの場合、または有限数でない場合



次の例では、ユーザーが入力テキストフィールドに応答を書き込む時間が 90 秒間あります。さらに 30 秒ごとに、ユーザーに対してステータスメッセージが表示され、残り時間が通知されます。

30 秒ごとに起動し (遅延を 30000 ミリ秒に設定)、合計 90 秒間に 3 回起動を繰り返す Timer オブジェクトが作成されます。(タイマーは 3 回で停止します。)

myTimer タイマーに 2 つのイベントリスナーが追加されます。1 つ目のイベントリスナーは、タイマーが起動するたびに発生する TimerEvent.TIMER イベントによってトリガされます。timerHandler() メソッドによって statusTextField テキストフィールドのテキストが変更され、残りの秒数が反映されます。

メモ : Timer クラスは、起動する必要がある回数 (repeats) を管理します。これは、currentCount プロパティの数値を増やすことによって実行されます。

最後にタイマーが呼び出された後、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 write 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

タイマーが実行されている場合はタイマーを停止して、ストップウォッチのリセットボタンのように、currentCount プロパティを 0 に戻します。その後、start() が呼び出されると、repeatCount 値で指定した繰り返しの回数のタイマーインスタンスが実行されます。

関連項目

start()メソッド 
public function start():void

タイマーがまだ実行されていない場合は、タイマーを起動します。

stop()メソッド 
public function stop():void

タイマーを停止します。stop() の後に start() が呼び出されると、repeatCount プロパティで指定した残りの繰り返しの回数のタイマーインスタンスが実行されます。

関連項目

イベントの詳細
timer イベント
イベントオブジェクトの型: flash.events.TimerEvent
TimerEvent.type プロパティ = flash.events.TimerEvent.TIMER

Timer オブジェクトが Timer.delay プロパティに従って指定された時間間隔に達するたびに送出されます。

type プロパティ (timer イベントオブジェクト) の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
target時間間隔が経過した Timer オブジェクトです。
timerComplete イベント  
イベントオブジェクトの型: flash.events.TimerEvent
TimerEvent.type プロパティ = flash.events.TimerEvent.TIMER_COMPLETE

Timer.repeatCount で設定された要求数を完了するたびに送出されます。

type プロパティ (timerComplete イベントオブジェクト) の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
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);
        }
    }
}




 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/utils/Timer.html