HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0731
uトリプルクリックの実装3解決


u

リンク

2009/7/31(Fri) 08:10:44|NO.26625

トリプルクリックで動作するプログラムを作るにはどうしたらよいでしょうか。
常にカウントさせる変数を作り3回クリックされるまでの間隔で判別させたいのですが、
判別の仕方が思いつかず詰まっています。


repeat count+=1 stick left,256,0 if left=256 { cls gosub *aaa mes a } wait 1 loop *aaa a=count return



この記事に返信する


Quiet

リンク

2009/7/31(Fri) 10:06:12|NO.26626

こんなんでよければ

repeat stick ky if ky=256 :a+ if a>0 :b+ if b>30 :a=0 :b=0 if a=3 :c+ :a=0 :b=0 title ""+c wait 1 loop



SYAM

リンク

2009/7/31(Fri) 11:23:47|NO.26627

ダブルクリックとトリプルクリックで違う動作をさせたい場合は、連続クリックを検出したあと少し待ってから判断しないといけません。
でないと、トリプルクリックを 「ダブルクリック+クリック」か、または「ダブルクリック2回」と解釈してしまいます。


#define MAXCLICK 16 dim ctime,MAXCLICK *@ stick keyin if(keyin&256):gosub *ON_CLICKED gosub *AFTER_CLICK await 1 goto *@b *ON_CLICKED ci = ci+1 : if(ci>=MAXCLICK):ci=0 ctime(ci) = gettime(4)*3600000+gettime(5)*60000+gettime(6)*1000+gettime(7) lastclick = ctime(ci) clicked=0 repeat MAXCLICK-1:c = MAXCLICK-cnt-1 cp = ci-c + (ci<c)*MAXCLICK c++ if(ctime(ci)-ctime(cp) < 200*c){ clicked=c break } loop return *AFTER_CLICK now = gettime(4)*3600000+gettime(5)*60000+gettime(6)*1000+gettime(7) if(now-lastclick>400){ lastclick = 0x7fffffff if(clicked>0){ dim ctime,MAXCLICK goto *ON_X_CLICKED } } return *ON_X_CLICKED mes ""+clicked+"回クリック." return

これは極端ですが。



u

リンク

2009/7/31(Fri) 23:26:15|NO.26655

QuietさんとSYAMさん、ありがとうございます。
初めはQuietさんと似たようなスクリプトを作っていたのですが、くだらないミスで失敗していたようです。
SYAMさんのスクリプトはテキストエディタ等を製作する上で重宝しそうです。



ONION software Copyright 1997-2023(c) All rights reserved.