ソラマメブログ › くるじんのSL考 › SL考 › 「 マウスクリックの長押し処理 / 変わらない・・・ 」

2009年06月05日

「 マウスクリックの長押し処理 / 変わらない・・・ 」

( 製作日誌 ・・・ マウスクリックの長押し処理 )
 どうなのだろうか?・・・マウスクリックで、長押しをすると 別の処理にする機能・・・ちゃんと 動いてますか?
「 マウスクリックの長押し処理 / 変わらない・・・ 」
 LSLのタッチイベント・・・SIMの 状態によっては、長押しではない 普通の クリックでも、反応しないというか クリックしてから かなり時間をおいてから 動き出すということはあります・・・ラグ・・・。

 なので、長押しの場合も なかなか 操作したい機能に 移れなかったりすることはあります。

 そのことがあったので、現在使っている 処理は、 OK がでるまで 押し続けてもらうようにしたのですが・・・あくまでも 自分が使用している PC環境で調整して、最適になるようにしたつもりなので、他の方が使った場合 どうなのかな?と・・・いまさらながら・・・。

 現在使っている 長押し処理の スクリプト
 ( パーセルレーダー と 1プリムのアルバム に使用 )
integer  CT_Toch = 0;
integer  CT_TcMx = 8;

default {

  touch_start( integer num_detected ) {

    CT_Toch = 0;
  }

  touch( integer num_detected ) {

    CT_Toch ++;
    if( CT_Toch > CT_TcMx ) {
      if( CT_Toch < CT_TcMx + 99 ) {
        llOwnerSay( "  OK.  Mode was changed. " );
      }
      CT_Toch = CT_TcMx + 99;
    }
  }

  touch_end( integer num_detected ) {

    if( CT_Toch < CT_TcMx ) {
      //  クリックした時の処理
    } else {
      //  長押しした時の処理
    }
  }
}

 ちょっと ごちゃごちゃ・・・LSLで動かす場合、本当に 良い処理は どういうものなのだろうか?

 心配になったのは、この スクリプトだと、サーバーの性能が 上がるか、通信速度? PC性能の向上により、逆に 反応が 良すぎてしまうということ・・・なので、カウント数を 変更できるように グローバル変数を使って 後で 変更しやすいようには してあるのですが・・・。

 反応が良すぎて、クリックしただけなのに 長押しした時の処理になってしまうという方は ご連絡ください・・・でも・・・まだ 解決策は 特に 考えてませんけど・・・ 8 を 大きな数値に 変更するだけ・・・。

 ちょっと考えた・・・やっぱり、 integer llGetUnixTime() で 現在時刻を 取得する方法が 良いのかな・・・でも・・・ 反応しているのか 反応していないのかを 判断する処理を考えると、カウントだけで 十分なような気もするし・・・う~む・・・考えるのは 止めよう・・・。


( 変わらない・・・ )
 いつも ふらふら・・・変わらない・・・。

 KIREINA RESORT を 遊覧して・・・
「 マウスクリックの長押し処理 / 変わらない・・・ 」

 GO GOing Ark で ラジオを聴いた後、高台で ぼんやり・・・
「 マウスクリックの長押し処理 / 変わらない・・・ 」

 ふぅ~



同じカテゴリー(SL考)の記事画像
「 メロンを投げる・・・ 」
「 平和的に・・・ 」
「 乗ってみたいに 乗ってみた・・・ 」
「 ペイパルで・・・復興支援 」
「 BIOS も ちゃんと更新 ><; / 朝練 その2 」
「 天災は・・・AO( スクリプト )が動かなくなった件 」
同じカテゴリー(SL考)の記事
 「 メロンを投げる・・・ 」 (2024-05-04 17:55)
 「 平和的に・・・ 」 (2024-03-18 05:55)
 「 乗ってみたいに 乗ってみた・・・ 」 (2024-03-03 21:25)
 「 ペイパルで・・・復興支援 」 (2024-02-09 20:55)
 「 BIOS も ちゃんと更新 ><; / 朝練 その2 」 (2023-12-30 14:55)
 「 天災は・・・AO( スクリプト )が動かなくなった件 」 (2023-12-03 05:55)

Posted by くるじん at 05:55│Comments(2)SL考
この記事へのコメント
カウントの長押し処理は、Homesteadだとかなり変わってくるんじゃないでしょうか。Mono化以前だと体感3,4倍くらい違いがでてたようにおもいます。
Posted by Nemo at 2009年06月05日 12:22
コメント ありがとうございます。

実際使われている方々が、不便だと感じなければ そのままでも良いと思ったのですが、やっぱり 時間でチェックした方が、操作感覚としては良いのかもしれませんね。

Homestead というか、その時点での サーバーの性能と 処理状態ですね・・・メンテナンスのたびに、 regionの構成?が変わることもあり、良くなったり 悪くなったりするらしい。

なるほど・・・Mono化以前というか LSL2で調整したスクリプトを そのまま Monoでコンパイルすると、反応が 早過ぎてしまうかもしれないということですね。

integer llGetUnixTime() で差を見るか、float llGetTime() を使うか・・・かな?

とはいっても、反応しているのか していないのかが わからないと、長押し機能に移る前に ボタンを離してしまい、結果 動かないと勘違いしてしまう可能性があると思ったので、メッセージで 知らせてあげたいと思ったのですが 余計な処理かな?・・・押したままの状態でも 次の処理に移してしまえばよいのかもしれませんが、ダイアログボックスの場合、表示するまでに時間が掛かるので、余分に 押し続けることになると思ったからなのですが・・・それが 余計か・・・^^

・・・ダメだ・・・また、同じことを考えている^^・・・でも、時間のチェックは必要そうですね・・・ Class6 でしたっけ?・・・サーバーが変わってから、対応させるのも面倒ですからね。

ありがとうございました。
Posted by くるじん at 2009年06月05日 20:59
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。