p> 在设计应用程序过程中,恰当地应用电脑声音与
动画技术,可以为用户提供更加直观、友好、引人注目的操作界面。下面笔者介绍一下在PowerBuild
应用中实现声音与动画的一种简便方法:
- 作为举例,创建一个MDI风格的窗口w_audani。在这个窗口上放置一个含声音、动画两
个带图标的菜单项的菜单m_audani,一个图象框p_1。整个窗口的外观如下:
- 制备声音和图象文件。本例中选用了一个adu.wav的声音文件和四个ani1.bmp、ani2.bmp、ani3.bmp、ani4.bmp
用于动画素材的分离图象文件。
- 定义程序编制中要用到的变量:
(1)定义一个整型实例变量,用作图象计数
integerpicturenub
(2)定义一个外部函数,使在PowerBuild编程中可以调用Windows
32-bitAPI声音播放函数
functionbooleansndplaysounda
(stringsoundname,uintflags)&
library"winmm.dll"
为窗口w_audani编制事件处理程序。程序行中//后的为说明文字。
(1)在窗口的打开(Open)事件下输入程序:
//声音菜单项置选中属性
m_audani.m_1.m_aud.checked=true
//动画菜单项置选中属性
m_audani.m_1.m_ani.checked=true
//图象计数器置初值
picturenub=1
//定义每隔半秒钟触发一次窗口的timer事件
timer(0.5,this)
----(2)在窗口的计时器(Timer)事件下输入程序:
----//如果声音菜单项被选中,则调用Windows32-bit
API声音播放函数播放声音文件。函数第一个参数指出要播放的声音文件名,第二个指出
函数播放属性,属性3为异步、不缺省
IFm_audani.m_1.m_aud.checked=trueTHEN
sndplaysounda("aud.wav",3)
ENDIF
//如果动画菜单项被选中,则播放动画
IFm_audani.m_1.m_ani.checked=trueTHEN
CHOOSECASEpicturenub
//当图象计数为1时,播放第1张图象
CASE1
p_1.picturename="ani1.bmp"
//当图象计数为2时,播放第2张图象
CASE2
p_1.picturename="ani2.bmp"
//当图象计数为3时,播放第3张图象
CASE3
p_1.picturename="ani3.bmp"
//当图象计数为4时,播放第4张图象
CASE4
p_1.picturename="ani4.bmp"
//恢复图象计数
picturenub=0
ENDCHOOSE
//图象计数增1
picturenub++
ENDIF
为菜单m_audani编制事件处理程序:
(1)在菜单项声音(m_aud)的单击(Clicked)事件下输入程序:
//使该菜单项的选中? 反转起到开关的作用,即原来为选中的变为不选中,未选中的
则现在变成选中
this.checked=notthis.checked
(2)在菜单项动画(m_ani)的单击(Clicked)事件下输入程序:
//同样,使该菜单项的选中属性反转
this.checked=notthis.checked
执行该程序的大致情况是:
(1)启动程序后,自动打开以上图示的窗口;
(2)窗口计时器按每半秒钟触发一次事件处理程序,播放声音和图象文件,周而复始以
产生动画效果;
(3)单击声音或动画菜单项(工具图标),可以控制声音或动画是否播放。
|