8/31
第14回 ダブルクリックを作る
第14回のFlash講座は何処で使うか予測できないがダブルクリックを紹介します。
Flashでダブルクリックを実現するには getTimer() を使うのが手っ取りばやいのではと思ったので作ってみました。
動きはこのようになります。
ではASの説明〜
01: sTime = 0;まず適当なMCを作りインスタンス名は “test_btn” とします。ついでにテキスト入力ボックスを作り “deray_txt” と入れます。調節しながら確かめるのが楽ですからね。
02: nderay = 200;
03: deray_txt.text = nderay;
04: test_btn.onPress = function(){
05: fTime = getTimer();
06: aTime = fTime - sTime;
07: nderay = parseInt(deray_txt.text);
08: deray_txt.text = nderay;
09: if(aTime < nderay){
10: test_txt.text = “DoubleClick”;
11: sTime = 0;
12: }else{
13: test_txt.text = “SingleClick”;
14: sTime = fTime;
15: }
16: }
スクリプトを見た感じ単純なのですが、ここから先の説明文がやたらと読みにくいので理解されるのに時間が掛かるかもしれません。
毎度見難くてすみません(’A`)
では、気を取り直して説明っっ!!
02: で nderay に初期ディレイタイムを入れます。この nderay がダブルクリックの間隔を決める事になります。
05: の fTime = getTimer(); は クリックしたときの時間を取ります。
getTimer() はFlashが表示されてから経過した時間をとります。
06: の aTime = fTime - sTime; は クリックした瞬間の時間から以前クリックした時間を引きます。
09: で if(aTime < nderay){ とし 処理を分岐させます。
aTime が nderay より小さい場合はダブルクリック、違ったらシングルクリック。
結果が else の場合は sTime = fTime とし、以前押された時間を格納する sTime に代入します。
数字を入れて説明しますと、
Flashが表示されてからの時間が5000msでクリックしたとします。
05: fTime = getTimer();
05: fTime = 5000;
06: aTime = fTime - sTime;
06: aTime = 5000 - 0;
このようになり
09: if(aTime < nderay){
09: if(5000 < 200){
aTime が nderay より小さい場合というif文なので、結果は誤。
よって 12: }else{ に行き
14: sTime = fTime;
14: sTime = 5000;
これで sTime に 5000 が入りました。
そしてもう一度クリックしたとき 5100ms だったとします。早いダブルクリックですね…。
05: fTime = getTimer();
05: fTime = 5100;
06: aTime = fTime - sTime;
06: aTime = 5100 - 5000;
結果 aTime に 100 が入り、
09: if(aTime < nderay){
09: if(100 < 200){
このようになり真の処理が走ると言うことです。この処理が走ったら
11: sTime = 0 としないといけないので書き忘れに注意してください。
では、何かに使ってください。
*—– 続き —–*
簡易版
var sTime = 0;こんな感じでいかかでしょ。
deray = 200;
test_btn.onPress = function(){
fTime = getTimer();
if(fTime - sTime < deray){
trace(”DC”);
}else{
trace(”SC”);
}
sTime = getTimer();
}





![Track: Don't Stop ([ELMIO remix]
Artist: i-dep
Album: CAFE aperitivo 4~Ever green~
Genre: Electronica/Dance](http://ecx.images-amazon.com/images/I/31KAKSKcEjL._SL160_.jpg)








