首页  ·  知识 ·  网站开发
控制声音的回放
ybzjllj  flash8.net    编辑:dezai  图片来源:网络
一、基础知识:1、开始声音播放: MySoudn.start([参数1:开始播放的位置,秒],[参数2:循环次数])。

一、基础知识:
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;
}
本文作者:ybzjllj 来源:flash8.net
CIO之家 www.ciozj.com 微信公众号:imciow
    >>频道首页  >>网站首页   纠错  >>投诉
版权声明:CIO之家尊重行业规范,每篇文章都注明有明确的作者和来源;CIO之家的原创文章,请转载时务必注明文章作者和来源;
延伸阅读