一、基础知识: 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; } |