mod004 ダブルクリック判定(ダブルクリック前のシングルクリックは検知せず)

flashPlayer version6.0r65以降

ダブルクリックを検出します。
ダブルクリック前の一回目のクリックは検知しません。
ただし、シングルクリック時の処理も一定時間待つことになってしまいます。

//ダイナミックテキストは結果表示のためのものでダブルクリックチェックとは無関係
//一定時間内のクリック回数を数え、その回数が一回か二回以上かで処理を分ける
//ダブルクリック時にシングルクリックを検出しない
//シングルクリック時の処理も一定時間以内は行われない
//duration:ダブルクリック時間定数 この値以内の二度目以降のクリックをダブルクリックとする
//clickN:クリック回数
//clickA:クリックを検出したいインスタンス名
//clickSD:インスタンスクリック時の呼び出し関数
//intervalId:setInterval用
//check:結果表示用ダイナミックテキストの変数
var duration:Number=200;
var clickN:Number=0;//クリック回数
clickA.onPress=clickSD;
var intervalId:Number;

//クリック処理関数
function clickSD2():Void{
if(clickN == 1){
//シングルクリック処理を書き込む
check = "シングルクリック";
}
else if(clickN > 1){
//ダブルクリック処理を書き込む
check = "ダブルクリック";
}
clearInterval(intervalId);//間隔をクリアする
clickN = 0;//クリック回数を0に戻す
}

//クリック時呼び出し関数
function clickSD():Void{
//durationにて設定した時間後にclickSD2関数呼び出し
if(clickN == 0)intervalId = setInterval(_root, "clickSD2", duration);
clickN++;//クリック回数を増やす
}

ダウンロード
サンプル