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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0526
ばるーる再生中の効果音を指定キーで停止させたいのですが7解決


ばるーる

リンク

2007/5/26(Sat) 18:37:59|NO.8509

昨日別のスレッドでご親切に書いて頂いた
効果音再生スクリプトを応用して

再生中の効果音をEscキーもしくは
スペースキーで停止させることは
出来ないか、検索で調べて
スクリプトを書いてみました。

上手く表現できませんけれど
できれば効果音の再生をEscキーもしくは
スペースキーで停止させた後、

待ち時間といえばよいのでしょうか、
タイムロス無しで、すぐにスクリプトを
一行目から実行し直して、

効果音を鳴らすボタンを押せるようにするには
以下のスクリプトで合っているかどうか、
お手数ですが間違いなど在りましたら
どうか教えて下さい。


cls 1,*saisyo ;スクリプト先頭部分 mes "効果音再生スクリプト" mes "注:音は重ねられません" objsize 100,20,24 repeat 2 pos 32+cnt*108,64 repeat 5 button "効果音 "+(semax+1),*seplay button_id(semax)=stat semax++ ;"効果音"buttonの数 getkey x,32 getkey y,15 if x+y : break loop if x : goto *a if y : goto *b *a cls 1 mmstop ;stopだとすぐ下のgoto命令が無視されそうなので goto *saisyo *b cls 1 mmstop ;stopだとすぐ下のgoto命令が無視されそうなので goto *saisyo loop loop pos 82,200 button "終了",*flag11 sdim sefname,64,semax sefname="GongB@08.wav","Jtomo01@08.wav" stop *seplay id=stat repeat semax if button_id(cnt)=id { if sefname(cnt)="" {title "効果音が設定されてません" :break} else {title sefname(cnt)+" を再生します"} mmload sefname(cnt),0,2 mmplay 0 break } loop stop *flag11 end



この記事に返信する


ばるーる

リンク

2007/5/26(Sat) 18:54:57|NO.8512

自分の今のパソコン環境では
インターネットからプログラムが
ダウンロードしようとすると
フリーズしてしまうため、

自分ですぐに動作確認を
することが出来ないんです。

お手間をお掛けしますが
スクリプトのどの箇所を
直せば良いか教えて頂けるよう
宜しくお願い致します。



jet-ball

リンク

2007/5/26(Sat) 19:02:32|NO.8513

HSP本体なしでプログラムを作ってるんですか・・・。
大変ですねw

この場合は repeat 〜 getkey 〜 loop よりも
onkeyを使ったほうが賢明です。

・onkey gosub *key
・*key
 if iparam=27:mmstop
 return

を適所に入れると出来ます。
iparam=27
は、簡単に言うと「押されたボタンがEsc」という意味です。



ばるーる

リンク

2007/5/26(Sat) 19:27:06|NO.8515

ご返答ありがとうございます。

挿入箇所についてなのですが
具体的には以下の11行目の場所で
良いのでしょうか・・・。


cls 1 mes "効果音再生スクリプト" mes "注:音は重ねられません" objsize 100,20,24 repeat 2 pos 32+cnt*108,64 repeat 5 button "効果音 "+(semax+1),*seplay button_id(semax)=stat semax++ ;"効果音"buttonの数 onkey gosub *key *key if iparam=27:mmstop return loop loop pos 82,200 button "終了",*flag11 sdim sefname,64,semax sefname="GongB@08.wav","Jtomo01@08.wav" stop *seplay id=stat repeat semax if button_id(cnt)=id { if sefname(cnt)="" {title "効果音が設定されてません" :break} else {title sefname(cnt)+" を再生します"} mmload sefname(cnt),0,2 mmplay 0 break } loop stop *flag11 end



jet-ball

リンク

2007/5/26(Sat) 21:06:29|NO.8521

onkeyはスクリプトの先頭でかまいません。


*key if iparam=27:mmstop return
はrepeat〜loopから出さないとだめです。
最初の「stop」以降に入れてください。

それからもう1つ
mmload "file",0,2 では音を鳴らしている間止まってしまうので
mmload "file",0 としてください。



林檎餅

リンク

2007/5/27(Sun) 08:18:05|NO.8540

おはようございます。

ご指摘の通り、以下のスクリプトで試しましたが
効果音を停止できません。

どこに問題があるのでしょうか?


onkey gosub *key cls 1 mes "効果音再生スクリプト" mes "注:音は重ねられません" objsize 100,20,24 repeat 2 pos 32+cnt*108,64 repeat 5 button "効果音 "+(semax+1),*seplay button_id(semax)=stat semax++ ;"効果音"buttonの数 loop loop pos 82,200 button "終了",*flag11 sdim sefname,64,semax sefname="GongB@08.wav","Jtomo01@08.wav" stop *key if iparam=27:mmstop return *seplay id=stat repeat semax if button_id(cnt)=id {;保存しといたIDと同じのが見つかった if sefname(cnt)="" {title "効果音が設定されてません" :break} else {title sefname(cnt)+" を再生します"} mmload sefname(cnt),0 mmplay 0 break } loop stop *flag11 end



jet-ball

リンク

2007/5/27(Sun) 16:09:45|NO.8555

私の環境だとちゃんと停止されています。
念のためですが、Escキーを押していますよね。



lonelybird

リンク

2007/5/27(Sun) 19:53:50|NO.8567

お返事に時間がかかってしまい、申し訳在りません。
HSP3.0と最新のアップデートファイルを
CDに焼いてもらい、インストールしました。

実際に動かしてみたら
onkey gosub命令を
cls命令の後に入れないと
Escボタンが認識されなかったです。

でも、おかげで解決しました。
お手数をかけて申し訳在りませんでした。
皆様、本当にありがとうございました。

*******効果音再生スクリプト*******


cls 1 onkey gosub *key mes "効果音再生スクリプト" mes "注:音は重ねられません" objsize 100,20,24 ; 以下上記スクリプト参照



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