敬业的IT人 >> 编程开发 >> PowerBuilder >> 在PB应用中实现声音与动画

在PB应用中实现声音与动画

敬业的IT人 互联网 佚名 2008-1-4 11:07:05

   在设计应用程序过程中,恰当地应用电脑声音与动画技术,可以为用户提供更加直观、友好、引人注目的操作界面。下面笔者介绍一下在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=trueTHENsndplaysounda("aud.wav",3)ENDIF//如果动画菜单项被选中,则播放动画IFm_audani.m_1.m_ani.checked=trueTHENCHOOSECASEpicturenub//当图象计数为1时,播放第1张图象CASE1p_1.picturename="ani1.bmp"//当图象计数为2时,播放第2张图象CASE2p_1.picturename="ani2.bmp"//当图象计数为3时,播放第3张图象CASE3p_1.picturename="ani3.bmp"//当图象计数为4时,播放第4张图象CASE4p_1.picturename="ani4.bmp"//恢复图象计数picturenub=0ENDCHOOSE//图象计数增1picturenub++ENDIF
    1. 为菜单m_audani编制事件处理程序:
      (1)在菜单项声音(m_aud)的单击(Clicked)事件下输入程序:
      //使该菜单项的选中? 反转起到开关的作用,即原来为选中的变为不选中,未选中的则现在变成选中
      this.checked=notthis.checked
      (2)在菜单项动画(m_ani)的单击(Clicked)事件下输入程序:
        //同样,使该菜单项的选中属性反转this.checked=notthis.checked
      1. 执行该程序的大致情况是:
        (1)启动程序后,自动打开以上图示的窗口;
        (2)窗口计时器按每半秒钟触发一次事件处理程序,播放声音和图象文件,周而复始以产生动画效果;
        (3)单击声音或动画菜单项(工具图标),可以控制声音或动画是否播放。
        1. 进入讨论组讨论。
          粤ICP备06119539号
          Copyright CiscoSky.Org,Some Rights Reserved.
          Email:me1228#tom.com