--以下是个控制音量的滑块的行为库,滑杆为线性移动,角度任意
--请参考网站
http://www.xcoming.comproperty pAngle,pLen,pStartvalue,pCtrl
property pDrag,startx,starty,endx,endy
on beginsprite me
startx=integer(sprite(me.spritenum).loch)
starty=integer(sprite(me.spritenum).locv)
endx=integer(startx+pLen*cos(pAngle*pi/180))
endy=integer(starty+pLen*sin(pAngle*pi/180))
if pStartvalue=-1 then
pStartvalue=baGetVolume("master")
else
baSetVolume(pCtrl,pStartvalue)
end if
sprite(me.spritenum).loch=(pLen/100*pStartvalue)*cos(pAngle*pi/180)+startx
sprite(me.spritenum).locv=(pLen/100*pStartvalue)*sin(pAngle*pi/180)+starty
end
on mousedown
pDrag=true
end
on mouseup
pDrag=false
end
on mouseupoutside
pDrag=false
end
on exitframe me
if not pDrag then exit
curx=integer(the mouseloc.loch)
cury=integer(the mouseloc.locv)
if startx>endx then
if curx>=endx and curx<=startx then
flagx=true
end if
else if startx
if curx<=endx and curx>=startx then
flagx=true
end if
else
flagx=true
end if
if starty>endy then
if cury>=endy and cury<=starty then
flagy=true
end if
else if starty if cury<=endy and cury>=starty then
flagy=true
end if
else
flagy=true
end if
if flagx and flagy then
if (pAngle>=0 and pAngle<=45) or (pAngle<=360 and pAngle>=315) or (pAngle>=135 and pAngle<=225) then
sprite(me.spritenum).loch=curx
sprite(me.spritenum).locv=(curx-startx)/cos(pAngle*pi/180)*sin(pAngle*pi/180)+starty
len=(sprite(me.spritenum).loch-startx)/cos(pAngle*pi/180)
else
sprite(me.spritenum).locv=cury
sprite(me.spritenum).loch=(cury-starty)/sin(pAngle*pi/180)*cos(pAngle*pi/180)+startx
len=(sprite(me.spritenum).locv-starty)/sin(pAngle*pi/180)
end if
baSetVolume(pCtrl,integer(len/pLen*100))
-- put len/pLen*100
end if
end
on getpropertydescriptionlist
ctrllist=["master","wave","cd","midi"]
props=[:]
props.addprop(#pCtrl,[#comment:"控制声音类型(master:系统音量板,wave:wav或视频):",#format:#string,#range:ctrllist,#default:ctrllist[1]])
props.addprop(#pAngle,[#comment:"音量调节线斜率(角度):",#format:#integer,#range:[#min:0,#max:360],#default:0])
props.addprop(#pLen,[#comment:"音量调节线长度:",#format:#integer,#default:100])
props.addprop(#pStartvalue,[#comment:"音量初始值(-1表示获取当前系统音量值):",#format:#integer,#range:[#min:-1,#max:100],#default:80])
return props
end