笔者在《中国电脑教育报》2002年第12期第A28版发表了一篇《音量大小任我调》,相对Authorware而言,Flash中音量大小的动态调节要简单许多,它不需要外挂函数,只需使用自身的Actions函数就可以解决。

  制作思路:通过拖动影片(MovieClip)改变其位置,然后将位置的值作为音量的值,从而达到动态调节音量的目的。下面就为朋友们介绍音量控制程序的具体制作方法:

  1、 启动Flash 5,新建一个名为“音量控制”的文件,单击“File→Import…(Ctrl+R)”导入需要的声音文件,按Ctrl+L打开“Library库”,选中导入的声音文件,单击鼠标右键,选择菜单中的“Linkage…”打开“Symbol Linkage Properties”对话框,选择“Export this symbol”,然后在entifier中输入“sound ”。

  2、 按Ctrl+F8创建一个名为“音量面板”的MovieClip,然后绘制一个直角三角形(如图1),三角形的宽(W)100,高(H)7,数值的调节可以通过Info面板(Ctrl+Alt+I);按Ctrl+F8创建一个名为“音量滑块”的Buttons,在Up帧绘制一个小圆作为滑块,宽和高都是8,然后在其他的帧按F6键插入关键帧。


  图1

  3、 按Ctrl+F8创建一个名为“滑块移动”的MovieClip,将“音量滑块”拖放在场景中,然后为按钮加上如Actions语句:

  on (press) {

  startDrag ("/hk", true, x-65, y+3, x+35, y+3);

  }

  on (release) {

  stopDrag ();

  }

  //说明:这里的hk为“滑块移动”的Instance name ;后面的代数式主要是用来控制音量滑块的移动范围,目的是使滑块能够在“音量面板”上移动,这里要根据实际情况调节。

  再为该帧加上Actions语句:

  x = _root.mb._x;

  y =_root.mb._y;

  //说明:_root.mb._x为音量面板的横坐标 ,_root.mb._y为音量面板的纵坐标,这样获取了x、y的数值,使“音量滑块”能够在面板上移动。

  4、单击Scene 1回到场景中,插入一新层后,从上至下命名为“音量控制”和“音乐”;在“音乐”层的第1帧插入关键帧,然后为该帧加上如下Actions语句:

  sound = new Sound();

  sound.attachSound("sound");

  //将Library库中的sound捆绑于当前声音中。

  sound.start(); //播放sound。

  sound.setVolume(50);//设定初始音量为50。

  5、将“音量面板”、“滑块移动”拖放在“音量控制”层的第1帧,使“滑块移动”的位置在“音量面板”的中心部分,可通过Align面板(Ctrl+K)对齐调整;选中“音量面板”单击右键选择“Panels→Instance” ,在Name中输入“mb” ;同样为“滑块移动”设置Instance Name为“hk” ;然后为“滑块移动”加上如下Actions语句:

  onClipEvent (enterFrame) {

  yinliang = getProperty("/hk", _x);

  //获取hk的横坐标值作为yinliang的值。

  _root.sound.setVolume(yinliang-(x-65));

  }//用yinliang的值减去滑块的最左端位置的值作为sound的音量;注意音量的数值范围在0~100之间。

  剑峰提醒:本例中的难点在“音量面板”和“音量滑块”的位置调节,如果位置调节的不好,可能会出现拖动时按钮离开面板的现象;如出现这种情况充分借助Info面板,调节第3步startDrag中代数式后面的数值;在大型动画的制作中,稍微调节本例中的一些数值再加工一下,就可作为其中的一个MovieClip来使用。

posted on 2010-05-09 14:21  农民要上网  阅读(1587)  评论(0编辑  收藏  举报