荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: guita (我想点就点,点?), 信区: Multimedia
标  题: Authorware中音量控制程序的制作
发信站: 荔园晨风BBS站 (Wed Jul  3 20:19:24 2002), 转信


在使用Authorware制作多媒体程序的时候,声音文件可以说是必不可少的。那么如
何在Authorware中动态控制音量的大小呢?笔者目前找到了一种方法,使用
Authorware的一个外挂函数——Binapi.u32

1、启动Authorware 6.0,新建一个名为“音量调节程序”的文件;选择“Window
→Functions”,打开Functions窗口,单击选择窗口中Category下的“音量调节程
序.a6p”,再单击窗口下方的“Load…”选择Binapi.u32弹出函数列表,按住
Ctrl键选择BNA_GetVolume 、BNA_SetVolume ,单击Load导入本例所需要的函数。


2、拖一个显示图标至流程线,取名为:音量面板;双击打开导入图片作为音量面
板,选中该图标,单击鼠标右键,选择“Caculation…”,在出现的窗口中输入以
下语句:

Movable:=FALSE——设置该图标在运行后不可移动。
m:=0
a:=1
关闭的时候连续单击OK即可。


图1 滑块与音量面板

3、再次拖一个显示图标至流程线,取名为:“音量滑块”;双击打开导入图片作
为滑块,此时滑块与音量面板的位置如图1所示(注意两者在不同的图标中);选
中滑块,按Ctrl+I键打开Properties对话框(如图2),单击Layout设置滑块的上
下移动距离,其中滑块的Base位置为面板的下部分,End为面板的上部分,在
Initial中输入yl。

4、拖一个声音图标至流程线,双击打开导入所需要的声音文件;单击Timing选项
,将Concurrency设为“Concurrent”,Play设为“Until True”、并在下面输入
“a:=0”,最后单击OK即可。


图2 设置Properties的各项参数

5、拖一个交互图标至流程线,再在旁边放置一个群组图标,选择Hot Spot,并将
响应区域与音量面板的静音部分重合,单击OK,将群组图标取名为“声音关”,双
击上面的小虚线方框打开“Properties:Response”属性框,选中Hot Spot下“
Highlight on Match”,再选中Response下的“Perpetual”,在Active If中输入
“m=0”,Branch设为“Return”,单击OK,最后为该群组图标加上语句:m:=1(具
体方法可参照第2步);在旁边再放置一个群组图标,取名为“声音开”,响应区
域也与音量面板的静音部分重合,在Active If中输入:“m:=1”,其余与群组图
标“声音开”的属性相同,为该群组图标加上语句:“m:=0”。

6、双击打开“声音关”群组图标,放置一个计算图标,输入“a:=0”,在计算图
标下面放置一个显示图标,在显示图标中画一个小勾图形,小勾的位置与音量面板
的静音部分重合;双击打开“声音开”群组图标,放置一个计算图标,在其中输入


a:=1
GoTo(IconID@"音量面板")

7、在“声音开”群组图标旁边放置一个计算图标,双击上面的小虚线方框打开“
Properties:Response”属性框,选择Type下的“Conditional”,单击Response,
不选择Scope下“Perpetual”,Branch设为“Try Again”;单击Conditional ,
在Condition中输入:“Dragging@"音量滑块"”,Automatic设为“When True”,
最后单击OK;双击打开计算图标,在其中输入如下语句:

yl:= INT(PathPosition@"音量滑块")——获取滑块的位置数值
BNA_SetVolume(1,yl)——将滑块的位置数值作为音量的数值,从而控制音量的大
小。


图3 本次所需流程图

8、按Ctrl+R键运行程序,可以发现音乐开始播放,当滑块上下拖动时,音量的大
小随着改变(本例流程图如图3);美中不足的是第一次运行会弹出函数的来源地
网址,不过不会影响使用,而且接着重新运行就不会出现啦。



--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.55.226]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店