打印本文 打印本文 关闭窗口 关闭窗口
在PB应用中实现声音与动画
作者:武汉SEO闵涛  文章来源:敏韬网  点击数756  更新时间:2009/4/22 22:54:33  文章录入:mintao  责任编辑:mintao
p> 在设计应用程序过程中,恰当地应用电脑声音与 动画技术,可以为用户提供更加直观、友好、引人注目的操作界面。下面笔者介绍一下在PowerBuild 应用中实现声音与动画的一种简便方法:
  1. 作为举例,创建一个MDI风格的窗口w_audani。在这个窗口上放置一个含声音、动画两 个带图标的菜单项的菜单m_audani,一个图象框p_1。整个窗口的外观如下:
  2. 制备声音和图象文件。本例中选用了一个adu.wav的声音文件和四个ani1.bmp、ani2.bmp、ani3.bmp、ani4.bmp 用于动画素材的分离图象文件。
  3. 定义程序编制中要用到的变量:
    (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)单击声音或动画菜单项(工具图标),可以控制声音或动画是否播放。

  • 打印本文 打印本文 关闭窗口 关闭窗口