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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0905
SpinこれってHSPのバグですか?5解決


Spin

リンク

2006/9/5(Tue) 01:45:15|NO.2272

下のスクリプトを実行すると、どうしてもifでエラーが出てしまいます。
スクリプトが間違っているのでしょうか?
よろしくお願いします。
repeat
//プレイヤー部分定義// stick click,256,0 if click&256 { dialog "通過" if mousex<151&mousey<26&mousex>25 { if path=""{ dialog "mid;*.wav;*.wma;*.mp3;*.aiv;*.mpg",16,"再生ファイル" if stat!=0 { path=refstr mci "open \""+path+"\" alias music" mci "play music" playflg="playing" //再生状況フラッグ // playing 再生中 // stopping 停止中 // ministopping一時ストップ // seeking シーク中 // chosing ファイル選択中 // nofile ファイル選択なし if stat=-1 { icon=0 button_n=1 ch_mess="エラーが発生しています。" } }else{ if playflg!"playing" { mci "play music" }else{ ix=200 //ウインドウ描画に渡す変数 iy=100 flg_w="waring" //ウィンドウに渡す変数 ch_mess="すでに再生されています。" button_n=0 icon=0 ;gosub *draw_infowindow //ダイアログを出す } } } if mousex<151&mousey>25&mousex>25 { mci "stop music" } if mousex<26 :gosub *move_window } if click&512 :end await 2 loop *move_window mx=ginfo(0) my=ginfo(1) width ,,mx-12,my-25 stick click,256,1 if click&256 :await 1 :goto *move_window return



この記事に返信する


Spin

リンク

2006/9/5(Tue) 01:54:03|NO.2273

環境を書くのを忘れていました。
使っているのはWindows Meです。
つい最近、HDを替えたため、再インストールをしたため、
多分、Windowsが原因ではないと思います。



Irisawa

リンク

2006/9/5(Tue) 03:12:39|NO.2274

原因は途中の閉じブレースがありません。

かなりifのネストが深くなっておりまた、ネストレベルとインデントが一致していません。
もう少しインデントが深くなる前にサブルーチンやモジュールを使用して分割しましょう。


repeat /* プレイヤー部分定義 */ stick click, 256, 0 if click & 256 { dialog "通過" if mousex<151&mousey<26&mousex>25 { gosub *open_file } if mousex < 151 & mousey > 25 & mousex > 25 { mci "stop music" } if mousex < 26 { gosub *move_window } } if click&512 { end } await 2 loop *open_file if path = "" { dialog "mid;*.wav;*.wma;*.mp3;*.aiv;*.mpg", 16, "再生ファイル" if stat ! 0 { path = refstr mci "open \"" + path + "\" alias music" mci "play music" playflg = "playing" ; 再生状況フラッグ ; playing 再生中 ; stopping 停止中 ; ministopping一時ストップ ; seeking シーク中 ; chosing ファイル選択中 ; nofile ファイル選択なし if stat = -1 { icon = 0 button_n = 1 ch_mess = "エラーが発生しています。" } } else { if playflg ! "playing" { mci "play music" } else { ix = 200 ; ウインドウ描画に渡す変数 iy = 100 flg_w = "waring" ; ウィンドウに渡す変数 ch_mess = "すでに再生されています。" button_n=0 icon=0 ; gosub *draw_infowindow ; ダイアログを出す } } } return *move_window mx = ginfo(0) my = ginfo(1) width , , mx - 12, my - 25 stick click, 256, 1 if click & 256 { await 1 goto *move_window } return



Irisawa

リンク

2006/9/5(Tue) 03:47:34|NO.2275

これはどちらかというと表示されるエラーが間違っていますね。
恐らく、仕様上難しいと思いますがブレースが足りないときに

16 "パラメータの数が多すぎます"

エラーがでるのは分かりづらいので修正されるといいかもしれませんね。



Spin

リンク

2006/9/7(Thu) 04:26:53|NO.2307

ありがとうございました!!!
改善できました!!



Spin

リンク

2006/9/7(Thu) 04:27:11|NO.2308

ありがとうございました!!!
改善できました!!



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