愚人码头 发表于 2009-2-19 08:27:15

Flash中音量和左右声道平衡的控制(3)

 三、调节声音的平衡

  (9)从库中选一个按钮放在舞台上,把这个按钮转换成MovieClip。这样做的目的是能把这个按钮既可以接受电影事件也能接受按钮事件。(此例是最下的那个按钮,既横向的那个)做好后如下图:   
www.ad119.cn/bbs/attachments/websoft/20090219/20092198265715677801.gif

  (10)在这个按钮的电影剪辑上加入以下代码

  onClipEvent (load) {
    top = _y;
    bottom = _y;
    left = _x-50;
    right = _x 50;
    center = _x;
  }
  onClipEvent (enterFrame) {
    if (dragging=true) {
      _root.s.setPan((_x-center)*2);
    }
  }

  (11)通过双击这个电影剪辑,或通过选中这个电影后再选Edit>Edit Symbol,进入该电影剪辑地编辑状态,选中按钮本身,在这个按钮上捆绑以下代码(和上次的操作完全相同)。

  on (press) {
    startDrag ("", false, left, top, right, bottom);
    dragging = true;
  }
  on (release) {
    stopDrag ();
    dragging = false;
  }  代码解释:在enterFrame事件中,是一个判断语句,dragging=true就是按钮正在被拖动,它是被设置在下面的按钮里的,当按钮在拖动时,draggin=true,但当stopDrag()时,dragging=false。如果判断是true时执行_root.s.setPan((_x-center)*2);这个语句的作用是当按钮在被拖动时,根据此时按钮的_x位置,来设置音量。

  这里用到了sound.setPan(pan)这个新的语句,sound是你是你建件的new sound()的名称,我们这里是s,pan是一个从-100至100的数字,0为声音在两个声道均衡分配,100为右声道最大,-100为左声道最大。至于里面的(_x-center)*2是一个从-100至100之间变化的变量,它的原理是根据_x坐标的变化而变化,相信大家一看就会明白。
原文件下载学习
页: [1]
查看完整版本: Flash中音量和左右声道平衡的控制(3)