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 で ラジオを聴いた後、高台で ぼんやり・・・
ふぅ~
どうなのだろうか?・・・マウスクリックで、長押しをすると 別の処理にする機能・・・ちゃんと 動いてますか?
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 で ラジオを聴いた後、高台で ぼんやり・・・
ふぅ~
「 メロンを投げる・・・ 」
「 平和的に・・・ 」
「 乗ってみたいに 乗ってみた・・・ 」
「 ペイパルで・・・復興支援 」
「 BIOS も ちゃんと更新 ><; / 朝練 その2 」
「 天災は・・・AO( スクリプト )が動かなくなった件 」
「 平和的に・・・ 」
「 乗ってみたいに 乗ってみた・・・ 」
「 ペイパルで・・・復興支援 」
「 BIOS も ちゃんと更新 ><; / 朝練 その2 」
「 天災は・・・AO( スクリプト )が動かなくなった件 」
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 でしたっけ?・・・サーバーが変わってから、対応させるのも面倒ですからね。
ありがとうございました。
実際使われている方々が、不便だと感じなければ そのままでも良いと思ったのですが、やっぱり 時間でチェックした方が、操作感覚としては良いのかもしれませんね。
Homestead というか、その時点での サーバーの性能と 処理状態ですね・・・メンテナンスのたびに、 regionの構成?が変わることもあり、良くなったり 悪くなったりするらしい。
なるほど・・・Mono化以前というか LSL2で調整したスクリプトを そのまま Monoでコンパイルすると、反応が 早過ぎてしまうかもしれないということですね。
integer llGetUnixTime() で差を見るか、float llGetTime() を使うか・・・かな?
とはいっても、反応しているのか していないのかが わからないと、長押し機能に移る前に ボタンを離してしまい、結果 動かないと勘違いしてしまう可能性があると思ったので、メッセージで 知らせてあげたいと思ったのですが 余計な処理かな?・・・押したままの状態でも 次の処理に移してしまえばよいのかもしれませんが、ダイアログボックスの場合、表示するまでに時間が掛かるので、余分に 押し続けることになると思ったからなのですが・・・それが 余計か・・・^^
・・・ダメだ・・・また、同じことを考えている^^・・・でも、時間のチェックは必要そうですね・・・ Class6 でしたっけ?・・・サーバーが変わってから、対応させるのも面倒ですからね。
ありがとうございました。
Posted by くるじん at 2009年06月05日 20:59