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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0818
fuso画像をクリックしたらイベントがおこるようにしたい4解決


fuso

リンク

2012/8/18(Sat) 18:31:52|NO.48659

今まではボタンで代用していたのですが、それだと見た目がチープなため、
画像をクリックした時に同様のイベント(別のルーチンに移動)をおこしたいと思います。

実践した方法は、マウスカーソルの座標を取得して、
if文で画像の座標内にカーソルがあるときにクリックしたらイベントがおこるものです。
実際成功したのですが、移動先のルーチン(*Aとします)でもクリックしたらもう一度*Aに移動してしまいます。(これは特定した座標内ではなくウインドウ全体でおこります)

間違っていると思われる点、また、別の方法があれば回答お願いします。
よろしくお願いします。



この記事に返信する


GENKI

リンク

2012/8/18(Sat) 20:12:53|NO.48667

どうやってイベントを実装したかにもよるのでもっと情報がほしいところですが、button命令の時は同じ現象は起きなかったんですか?

ちなみにこのような現象でしょうか?(ボタン連打してください。)

button gosub "aaa",*a stop *a mes "1" wait 500 ;この待機中にボタン連打! mes "2" return


> 画像をクリックした時に同様のイベント(別のルーチンに移動)をおこしたいと思います。

objimage



cats

リンク

2012/8/18(Sat) 20:40:35|NO.48668

>移動先のルーチン(*Aとします)でもクリックしたらもう一度*Aに移動してしまいます。
ifで確認して*Aに飛んだらもうクリックは反応しないと思いますが・・・
自分の想像では今↓みたいな状況かと。

*main wait 1 if 画像クリック :gosub*A goto *main *A mes "クリック" return



れみはる

リンク

2012/8/18(Sat) 21:16:49|NO.48669

>座標内にカーソルがあるときにクリックしたらイベントがおこる
逆に考えて
「クリックされたとき、マウスポインターが座標内にあればイベントが起こる」
と考えてはどうでしょうか。

onClick gosub *inClick boxf 32, 32, 64, 64 //ここをクリックすると*Aへサブルーチン stop *inClick onClick 0 if mouseX >= 32 && mouseX <=64 && mouseY >= 32 && mouseY <=64 :gosub *A onClick 1 return *A //ごにょごにょ repeat 5 : mes "gonyo" : wait 50 : loop return

違ったら申し訳ないです。

既にGENKIさんでもでていますが
画像をボタンにするなら
objimage命令を使うほうがいいかもしれません。



fuso

リンク

2012/8/18(Sat) 22:44:22|NO.48671

すぐにチェックできなくて申し訳ないです。
3つも回答がきていることに感謝します。
>>GENKIさん
移動後時間がたっても起こるのでたぶん違うと思います。
「objimage」知りませんでした。ありがとうございました。

>>catsさん
確認したのですが、そういう記述はありませんでした。指摘ありがとうございました。

>>れみはるさん
そのプログラム試してみます。ありがとうございました

結論としてはobjimageとれみはるさんのソース両方試して粘ってみます。

三人とも回答ありがとうございました。



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