主题:  Sound对象应用实例

5D荣誉斑竹

职务:普通成员
等级:2
金币:10.0
发贴:585
#12001/7/8 11:45:34
Sound (object)
Sound对象允许您在一个特定的电影夹实例中, 或在全局时间线上(创建新的声音对象时不指定target), 设置和控制声音. 在调用Sound对象的方法前必须用构造器new Sound 创建一个Sound对象实例. Sound 对象仅支持 Flash 5 播放器.
Sound对象方法摘要
attachSound 附加参数中指定的声音.
getPan 返回前一次setPan设置的值.
getTransform 返回前一次setTransform设置的值.
getVolume 返回前一次setVolume设置的值.
setPan 设置声音的左/右平衡.
setTransform 设置声音转换.
setVolume 设置声音大小.
start 从起始处, 或从参数中指定的偏移点处开始播放声音.
stop 停止所有声音或当前指定的声音.

Sound对象构造器
语法
new Sound();
new Sound(target); target 声音对象应用到的电影夹实例. 此参数可选.
描述
为指定电影夹创建新的声音对象. 如果没有指定 target, 声音对象控制主时间线上的所有声音.
播放器
Flash 5 或更高.
例子
GlobalSound = new Sound();
MovieSound = new Sound(mymovie);

下面介绍一下本例中将要用到的函数
Sound.attachSound
语法
mySound.attachSound("idName");
参数
idName 新声音实例的名称. 它和在Symbol Linkage Properties对话框中输入的用于标识的名称是一样的. 此参数必须包含在 " " (引号)中.
描述
使参数idName指定的声音附加到指定的声音对象. 此声音必须在当前电影的库中, 并在Symbol Linkage Properties对话框中指定输出. 要开始播放声音必须调用Sound.start.

Sound.setPan
语法
mySound.setPan(pan);
参数
pan 定义声音左-右平衡的整数. 有效值范围是 -100 到 100, -100 为只使用左声道, 100 只使用右声道, 0 是在两声道间平衡分布声音.
描述
决定声音在左右声道(音箱)如何播放. 对单声道声音, pan 将影响播放声音的声道. 此方法是 setVolume 和 setTransform 方法的累加, 可调用此方法删除或更新先前 setPan 和 setTransform 的设置.

Sound.setVolume
语法
mySound.setVolume(volume);
参数
volume 从 0 到 100 的表现音量大小的数值. 100 是全部音量, 0 是没有声音. 默认设置为 100.
描述
设置声音对象的音量. 此方法是 setPan 和 setTransform 方法的累加.

Sound.start
语法
mySound.start();
mySound.start([secondOffset, loop]);
secondOffset 可选项, 允许在某特定位置开始声音的播放. 例如, 如果有一段30秒的声音, 想要从中间开始播放, 可指定参数secondOffset为15. 前15秒不会出现声音, 会在15秒处开始播放.
loop 可选项, 指定声音循环的次数.
描述
如果没有指定参数, 即从开始点播放最后附加的声音, 或由参数 secondOffset 指定的声音点开始播放.

Sound.stop
语法
mySound.stop();
mySound.stop(["idName"]);
参数
idName 可选项, 使指定声音停止播放. The idName 参数必须带引号(" ").
描述
如果没有指定参数, 即停止所有当前播放的声音, 或只停止播放参数idName指定的声音.



5D荣誉斑竹

职务:普通成员
等级:2
金币:10.0
发贴:585
#22001/7/8 11:47:16
看这个例子:

页面:点这儿参观
源文件:
bluejack.8u8.com/music.fla



5D荣誉斑竹

职务:普通成员
等级:2
金币:10.0
发贴:585
#32001/7/8 12:25:16
制作过程
1、音量调整器。先做个Button,里面画个30X10的矩形就行了。新建个mc,叫音量滑块,把刚才的Button拖入,并在Button上加上action:
on (press) {
startDrag ("", false, 0, 0, 0, 100);
}
on (release, releaseOutside) {
stopDrag ();
}
说明:startDrag ("", false, 0, 0, 0, 100)这一句限定了音量滑块只能在Y轴0到100的区域内被拖动,因为setVolume(volume)中,volume的取值范围就是0-100。
再画个Graphic刻度,其实就是个30X120的矩形,中间加一竖线就行了。
新建mc,叫音量调整器。把刻度拖入,左上角定位在(-15,-10)。再把音量滑块拖入,中心定位在(0,50),并把它命名为hk。
2、平衡调整器。做法和上面类似,只不过startDrag一句要改为:
startDrag ("", false, -100, 0, 100, 0);
3、Import你的几个声音文件(我这里用了3个),并把idName分别设为"1"、"2"、"3"(在符号库里,右键点选声音->Linkage…->Export this symbol)。
4、新建5个按钮,音乐1、音乐2、音乐3、播放和停止。
5、把音量调整器拖入场景,并用旋转工具把它旋转180度(这只是为了符合我们平时的使用习惯,你可以试试不旋转会是什么样)。平衡调整器也如法炮制。5个按钮也拖进来排好。下面开加action了。
6、先在帧上加上如下action:
mysound = new Sound(); //创建新的声音对象mysound
function music (n) { //自定义函数music(n)
mysound.stop();
mysound.attachSound(n);
mysound.start(0,100);//0是指从头播放,100是循环100次
}
音量调整器的action:
onClipEvent (enterFrame) { //注意这里是enterFrame而不是默认的Load
_root.mysound.setVolume(hk._y);//用音量hk的Y坐标做为Volume值
}
平衡调整器的action:
onClipEvent (enterFrame) {
_root.mysound.setPan(hk._x); //用平衡hk的X坐标做为Pan值
}
音乐1、音乐2、音乐3按钮的action分别为:
on (release) { _root.music(1);} //调用自定义函数music(n)
on (release) { _root.music(2);}
on (release) { _root.music(3);}
播放按钮的action:
on (release) { _root.mysound.start(0,100);}
停止按钮的action:
on (release) { _root.mysound.stop();}
好,至此就大功告成了。



网络白痴 | 5D荣誉斑竹

职务:普通成员
等级:4
金币:10.0
发贴:1657
#42001/7/8 15:13:33
抬,收到精华区!