あなたが今、抱えてる悩み カンドウコーポレーションが解決します お悩み一掃!!
STAFF INFORMATION

フラッシュ・ラボ ダブルクリック判断処理 [柳谷 武]

スタッフ紹介 >> 柳谷 武 >> フラッシュ・ラボ >> ダブルクリック判断処理  
<< フラッシュ・ラボに戻る
[ダブルクリック判断処理01]double click
ボタンをクリックするときに、決めた時間内に2度クリックしたかどうかを判断する処理です。シングルクリック後とダブルクリック後とで別々の処理が行えます。
たとえば、シングルクリックで、選択。ダブルクリックで、決定・実行など・・・が可能です。
[>>]をクリックとか
ダブルクリック
ダブルクリック判定処理01

[1] クリックするたびに、現在の時間を覚えておく。
[2] 前回クリックした時間と・・・今の時間を比較して、前回と今回の時間差が、決めておいた時間範囲内であれば、ダブルクリックに処理を行い、時間範囲外であれば、シングルクリックの処理を行う判断処理。

[ スクリプト - ツクリカタ ]

[A] まず、フラッシュの実行がはじまったときに、初期設定として1度だけ通る場所に記述する部分のスクリプトは・・・。
1フレーム目(ループ処理に入っていないフレーム)または、onClipEvent( load ){}をに記述。
初期設定
_root.double_click_speed = 400

[B] 実行するタイミング(サンプルの場合は、ボタンをpressする時)の個所に記述。
処理を行う時のスクリプト

myDate = new Date()

if( myDate.getTime() - _root.startTime <   _root.double_click_speed ){

  
ダブルクリック判定での処理

}else{

  
シングルクリック判定での処理

}

_root.startTime = myDate.getTime()

※上記のスクリプトには、全角スペースが含まれています。
コピペで使う場合、エラーが起こってしまうので、TABで行を右にずらす作業をやり直す必要があります。



[ スクリプトの意味 ]

初期設定
●_root.double_click_speed = 時間の数字
ダブルクリック反応待ち時間(1/1000秒)を決めておく。



処理を行う時のスクリプト
●myDate = new Date()
まず、時間処理の定義をします。書いとくだけ。

●if( myDate.getTime() - _root.startTime < _root.double_click_speed ){
[今の時間] - [前回クリックし終わった時間] が [ダブルクリック反応待ち時間] 以内だったら。

●_root.startTime = myDate.getTime()
クリックし終わった時間を覚えておく。


<< フラッシュ・ラボに戻る