如何动态的控制声音的音量大小?
解决思路(必须要有)
实现旋转按钮控制声音大小,首先我们要调用库中的音乐,并让其循环足够大的次数。然后要实现按钮拖动效果,并在此基础上实现声音的最大与最小之间的相互过渡。
具体步骤
我们分两个部分来完成。第一部分是事例所需要的元件的绘制。第二部分是AS控制部分。
1,??打开FLASH?MX,设置背景为绿色,其他文档属性默认。
2,??【插入】|【新建元件】,建立一个名称为“旋转按钮图形”的图形元件。并在其编辑区内利用简便填充的圆绘制一个旋转按钮。如图1所示。
图1??绘制旋转按钮
3,??先建一个影片剪辑,命名为“旋转按钮”。把“旋转按钮图形”从库中拖放到影片剪辑编辑区。分别在第50帧,第100帧插入要害帧。并设置这两帧中影片剪辑的旋转角度。创建移动渐变动画。并在第1帧添加AS:stop();。如图2,图3所示。
图2?第50帧的旋转角度
图3??第100帧的旋转角度
4,??先建一个按钮元件,命名为“按钮”。进入编辑区以后,在按钮时间线的第4帧“点击”帧里面绘制一个40*65像素的矩形。因为是在“点击”帧里面绘制的,所以颜色随意。如图4所示。
图4???绘制按钮元件
5,??先建一个名称为“滑快”的影片剪辑,把“按钮”元件拖放到编辑区。
6,??我们找一个mp3音乐,导入到库中。命名为“sound”。现在我们的预备工作都已经完成了。下面我们就要做最重要的as语句部分了。
7,??回到主场景,把“旋转按钮”影片剪辑拖放到第1层的第1帧,在下面的属性面板中设定给影片剪辑得分身名为“xuanzhuan_mc”。改变图层1的名称为“旋转”。如图5所示。
图5???设定分身名
8,??新建一层,命名为“按钮”。利用绘图工具绘制一个按钮的刻度,并添加刻度值。在上方创建一个动态文本,变量名为“aa”。如图6所示。
图6???“按钮”层的绘制
9,??新建一个图层,命名为“滑快”。把影片剪辑“滑快”拖放到场景中的相应位置,并在属性面板中设置他的分身名为“huadong_mc”。如图7所示。
图7???“滑快”层的设置
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,回到主场景,选中“滑快”图层中的影片剪辑,添加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”声音元件,利用鼠标右键打开连接面板。如图8所示设置。
图8??????声音文件的连接属性
完成。请参考源文件旋转按钮控制声音.fla
注??意?——按钮的刻度位置一定要与按钮旋转的角度相互对应。
提??示?——隐形按钮的制作很有讲究,文章开头我提到的灵光一闪就是这个了,开始时我做了个圆形的按钮,比较大。后来又改成了图中的A的矩形,比较好控制。因为当旋转MC播放时,你始终处于隐形按钮的感应范围,所以有种控制旋钮的错觉,其实你水平拖动也能控制声音的啦!
技??巧?——为什么MC的名称要起名为huadong_mc呢?因为假如你加上了非凡的后缀_mc,在写代码时,写到_mc后面再写点时,就会出现代码提示,很方便。(没有后缀不会出现。)
?分??析——?分析为什么要这样做,指出操作的要害,介绍其他操作的结果。使读者知其然,也知其所以然,从而举一反三。
非凡提示
动态文本框aa只是为测试,你可以把它删掉。
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |