lash动画制作中声音控制声音的技巧
一、基础知识:
1、开始声音播放:
MySoudn.start([参数1:开始播放的位置,秒],[参数2:循环次数])。参数1可以控制声音从任意位置开始播放。
2、两个属性:
MySoudn.position ,返回播放头当前位置,毫秒
MySoudn.duration ,返回声音总长度,毫秒
3、停止播放:
MySoudn.stop();
注意,停止后播放头也停在停止时的位置,直到下一个start()才移动。所以可以读取position并记住,以便下次接着播放。
4、从任意位置停止:
MySoudn.stop()是没有参数的,但是可以不断检测MySoudn.position,到达指定位置时,运行 MySoudn.stop()就可以停在任意位置。
5、循环播放:
有了1的任意位置起播,又有了4的任意位置停止,就可以实现任意段落的循环播放。
二、制作实验:
1、在舞台上放一个进度条剪辑:mcb ,把声音附加到它,并用其宽度来显示播放进度。
2、在mcb下面,放一个矩形条剪辑:mca,显示进度条总长度。
3、建个动态文本,实例名:sTxt,显示声音长度和播放时间。
4、放三个按钮:播放,暂停,停止。实例名见下面AS。
5、导入一个声音入 库,在库里设置:链接——为AS导出——ID为:Sou
6、第一帧写如下的代码:
var Sou:Sound=new Sound(mcb);//创建声音对象,并关联给剪辑mcb,如果要分别控制多个声音,必虽指定不同的MC。
Sou.attachSound("Sou");//从库里添加声音
var SouT:Number=0;//播放头
//播放按钮
SouPlay.onRelease=function(){
Sou.start(SouT/1000);//从指定位置开始播放,注意单位是 秒
mcb.onEnterFrame = function() {
SouT=Sou.position;//保存播放头位置,,注意单位是 毫秒
SouDir(SouT);
}
}
//暂停按钮
SouPause.onRelease=function(){
if(SouT!=0){
Sou.stop();
delete mcb.onEnterFrame;
}
}
//停止按钮
SouStop.onRelease=function(){
SouT=0;
Sou.stop();
SouDir(SouT);
delete mcb.onEnterFrame;
}
//播放完毕
Sou.onSoundComplete = function() {
SouT=0;
SouDir(SouT);
delete mcb.onEnterFrame;
}
SouDir(Sou.position);
//有关声音信息显示的函数,传入参数:当前声音位置
function SouDir(t):Void{
//显示播放时间:当前位置/总时间
_root.sTxt.text=t+"/"+Sou.duration;
//进度条
_root.mcb._width=t/Sou.duration*_root.mca._width;
}