如何利用旋转按钮控制音量?
解决思路
实现旋转按钮控制声音大小,首先我们要调用库中的音乐,并让其循环足够大的次数。然后要实现按钮拖动效果,并在此基础上实现声音的最大与最小之间的相互过渡。
具体步骤
我们分两个部分来完成。第一部分是事例所需要的元件的绘制。第二部分是AS控制部分。
1、 运行Flash MX 2004,设置背景为绿色,其他文档属性默认。
2、 单击【插入】|【新建元件】,建立一个名称为“旋转按钮图形”的图形元件。并在其编辑区内利用简便填充的圆绘制一个旋转按钮。如图3.3.103所示。

图3.3.103 绘制旋转按钮
3、 新建一个影片剪辑,命名为“旋转按钮”。把“旋转按钮图形”从库中拖放到影片剪辑编辑区。分别在第50帧,第100帧插入关键帧。并设置这两帧中影片剪辑的旋转角度。创建移动渐变动画。并在第1帧添加AS:stop();。如图3.3.104,图3.3.105所示。

图3.3.104 第50帧的旋转角度

图3.3.105 第100帧的旋转角度
4、 先建一个按钮元件,命名为“按钮”。进入编辑区以后,在按钮时间线的第4帧“点击”帧里面绘制一个40*65像素的矩形。因为是在“点击”帧里面绘制的,所以颜色随意。如图3.3.106所示。

图3.3.106 绘制按钮元件
5、 先建一个名称为“滑快”的影片剪辑,把“按钮”元件拖放到编辑区。
6、 我们找一个mp3音乐,导入到库中。命名为“sound”。现在我们的准备工作都已经完成了。下面我们就要做最重要的as语句部分了。
7、 回到场景1,把“旋转按钮”影片剪辑拖放到第1层的第1帧,在下面的属性面板中设定给影片剪辑得实例名为“xuanzhuan_mc”。改变图层1的名称为“旋转”。如图3.3.107所示。

图3.3.107 设定分身名
8、 新建一图层,命名为“按钮”。利用绘图工具绘制一个按钮的刻度,并添加刻度值。在上方创建一个动态文本,变量名为“aa”。如图3.3.108所示。

图3.3.108 “按钮”层的绘制
9、 新建一个图层,命名为“滑快”。把影片剪辑“滑快”拖放到场景中的相应位置,并在属性面板中设置他的实例名为“huadong_mc”。如图3.3.109所示。

图3.3.109 “滑快”层的设置
10、 新建最后一个图层,命名为as。在这个层中我们来添加as:
stop();//让动画在这帧停止
ss = new Sound(); //创建一个新的声音
ss.attachSound("sound"); //绑定库里的声音。
ss.start(0,200); //声音开始播放,循环200次。
11、双击库中的“滑快”影片剪辑,选中它里面的按钮,给按钮添加as:
on (press) {
startDrag("", false, left, top, right, bottom);
//当按下鼠标时,开始拖动,限制可拖动的区域
dragging = true;//设置变量为真
}
on (release, releaseOutside) {
stopDrag();//当释放或在按钮外释放时,停止拖动。
dragging = false; 设置变量为假
}
12、回到场景1,选中“滑快”图层中的影片剪辑,添加as:
// 这是设置huadong_mc(含按钮)的坐标位置。限制huadong_mc只能在水平方向移动。只能移100。
onClipEvent (load) {
top = _y;
left = _x;
right = _x+100;
bottom = _y;
}
// 当为真时,得到huadong_mc的坐标,去掉小数(重要),
onClipEvent (enterFrame) {
if (dragging == true) {
n = getProperty("_root.huadong_mc",_x);
n = Math.round(n);
// 取A的值,0~100,因为最大为341,最小为241
a = n-241;
// 设AA的值。
_root.aa = a;
// 指向MC,停止在AA的值。
_root.xuanzhuan_mc.gotoAndStop(_root.aa);
// 这句是设声音的大小,当X=LEST时,最大;当X=RIGHT时,最小。
_root.ss.setVolume(100-(_x-left));
}
}
13、测试,我们发现并没有声音播放。这是为什么呢?是因为我们在as层中设定了调用库中的音乐并没有成功。我们选中库中的“sound”声音元件,利用鼠标右键打开连接面板。如图3.3.110所示设置。

图3.3.110 声音文件的连接属性
完成。请参考源文件“旋转按钮控制声音”。
注 意 ——按钮的刻度位置一定要与按钮旋转的角度相互对应。
提 示 ——隐形按钮的制作很有讲究,文章开头我提到的灵光一闪就是这个了,开始时我做了个圆形的按钮,比较大。后来又改成了图中的A的矩形,比较好控制。因为当旋转MC播放时,你始终处于隐形按钮的感应范围,所以有种控制旋钮的错觉,其实你水平拖动也能控制声音的啦!
技 巧 ——为什么MC的名称要起名为huadong_mc呢?因为如果你加上了特殊的后缀_mc,在写代码时,写到_mc后面再写点时,就会出现代码提示,很方便。(没有后缀不会出现。) 分 析—— 分析为什么要这样做,指出操作的关键,介绍其他操作的结果。使读者知其然,也知其所以然,从而举一反三。
特别提示
动态文本框aa只是为测试,可以把它删掉。
特别说明
本例中除了as的一些用法的知识以外,我们第一次接触了声音的连接属性设置。在论坛上有不少的朋友遇到这样的问题。问题的关键就是没有设置声音的连接属性。声音的连接属性与影片剪辑得分身名是一样的。如果不设置他的连接属性,as就无法判断去控制哪一个元件了。
