ボタンは「押して離した」時にイベントが発生しますので、ボタンの代わりにボタン的な四角形を置き、
onclickでボタン押下を検出する様にしてみました。
さらにWM_LBUTTONUPのウィンドウメッセージでボタン押し上げを検出するようにしています。
#include "user32.as"
screen 0,250,250
title "音楽"
font msgothic,16
mmload "A.mp3",0
color 200,200,200 : boxf 0,0,79,31
color 0,0,0 : pos 24,8 : mes "再生"
onclick gosub *A
oncmd gosub *up,0x0202 //0x0202=WM_LBUTTONUP 左ボタンの押し上げメッセージ
flag=0 //再生中フラグ
stop
*A
if iparam : return //左クリック以外の場合は戻る
mx=mousex : my=mousey
if (mx>=0)&(mx<=79)&(my>=0)&(my<=31) {
mmplay 0
SetCapture hwnd //マウスキャプチャ開始(マウスカーソルがどこにあってもイベントを受け取れるように)
flag=1
}
return
*up
if flag {
mmstop
ReleaseCapture //マウスキャプチャ終了
flag=0
}
return