Flex中にsetTimeout()関数を利用して規定時間内活動していないと自動的でログアウトとする

セキュリティなど要求があるアプリケーション(金融や銀行などいろいろね)には、ある規定時間内、ユーザさんが何の操作もしなければ、自動的でログアウトさせてセッションを終了するようになります。setTimeout()関数を利用して、マウスとキーボードの操作をリッスン(MouseEvent.MOUSE_MOVE、MouseEvent.CLICKとKeyboardEvent.KEY_DOWN)して、ユーザのディレイ時間を計算して、規定時間と比べて、超えるとログアウト処理を行います。


流れは簡単ですね。まずsetTimeout()関数の詳細をご覧でください。

setTimeout()関数

public function setTimeout(closure:Function, delay:Number, … arguments):uint

ミリ秒単位で指定した遅延時間の経過後に、指定した関数を実行します。

このメソッドを使用する代わりに、repeatCount パラメータを 1 (タイマーを 1 回のみ実行する設定) にして、指定した間隔で Timer オブジェクトを作成することを検討してください。 clearTimeout() メソッドを使用して setTimeout() の呼び出しをキャンセルする場合は、必ず次のように、後で setTimeout() メソッドで参照される変数に clearTimeout() の呼び出しを割り当ててください。

var my_timedProcess:uint = setTimeout(my_delayedFunction, 1000);

// …

clearTimeout(my_timedProcess);

パラメータ

closure:Function — 実行する関数の名前です。引用符や括弧を使用しないでください。また、呼び出す関数にパラメータを指定しないでください。たとえば、functionName を使用して、functionName()functionName(param) は使用しないでください。

delay:Number — 関数が実行されるまでの遅延時間 (ミリ秒単位) です。

... arguments — closure 関数に渡す引数のオプションのリストです。

戻り値

uint — 時間のプロセスに対する一意の数値識別子です。

以下は全部のサンプルソースコードです。


















参考リソース:
http://livedocs.adobe.com/flex/2_jp/langref/flash/utils/package.html
http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&postid=322&loc=en_US&productid=2

Leave a Reply

Your email address will not be published. Required fields are marked *