AS3基础教程-第40课-mp3播放器(5)

 时间:2026-02-16 07:11:25

1、将39.fla复制一份,重命名为40.fla,用flashCS6打开

2、在Actions图层内,直接修改代码

3、原理解释:

当创建的声音播放完毕时,对应的SoundChannel对象会发出soundComplete 事件,就是flash.events.Event.SOUND_COMPLETE

我们利用这个设定,将播放的代码放入这个事件的响应函数内,从而就可以实现自动播放下一首歌。

4、我们在所有的代码的最后面,新增一行:

//模块五:自动播放下一首歌

准备写代码

5、我们自定义的SoundChannel对象是sdcn,故此,需要调用sdcn的soundComplete 事件,代码如下

sdcn.addEventListener(Event.SOUND_COMPLETE,autoPlayNext)

function autoPlayNext(ev:Event){

//这里书写播放下一首歌的代码

}

请仔细查看代码的组成,我们发现和按钮单击的代码如出一辙,都是有一个事件源(sdcn),对事件源注册侦听(addEventListener),所不同的是侦听的事件【按钮单击的事件是MouseEvent.CLICK 本例的事件是Event.SOUND_COMPLETE,】,都要定义响应函数(autoPlayNext),响应函数都有参数(ev)

6、接下来,只要在步骤5注释的位置,补充上播放声音的代码即可。

这段代码其实就是“下一首歌按钮”的代码,故此,将下一首 按钮的响应函数内的代码直接复制过来即可

另需注意:必须在响应函数内再次调用这个事件一次,否则只能自动播放一首歌

if(suoyin<url_arr.length-1){

suoyin++

trace(suoyin)

sdcn.stop()

url=url_arr[suoyin]

urr=new URLRequest(url)

mysd=new Sound(urr)

sdcn=mysd.play()

sdcn.addEventListener(Event.SOUND_COMPLETE,autoPlayNext)//本行不能漏

}

7、为了能尽快看到效果,我们最好找一些播放时长比较短的声音做测试,否则都要等到4到5分钟左右才能看到效果。

如果手中没有合适的声音文件,可以用BoilsoftVideoSplitter分割软件对声音进行切割处理。

记得在fla文件的代码中修改音乐文件的路径和名字

AS3基础教程-第40课-mp3播放器(5)

8、本节课的代码进新增了一个模块,其它位置都未做修改。故,只给出新增模块的完整代码如下:

//模块五:自动播放下一首歌

sdcn.addEventListener(Event.SOUND_COMPLETE,autoPlayNext)

function autoPlayNext(ev:Event){

if(suoyin<url_arr.length-1){

suoyin++

trace(suoyin)

sdcn.stop()

url=url_arr[suoyin]

urr=new URLRequest(url)

mysd=new Sound(urr)

sdcn=mysd.play()

sdcn.addEventListener(Event.SOUND_COMPLETE,autoPlayNext)//本行不能漏

}

}

9、源文件已经共享,名为40.fla

  • AS3基础教程-第39课-mp3播放器(4)
  • AS3基础教程-第44课-mp3播放器(9)
  • AS3基础教程-第41课-mp3播放器(6)
  • AS3基础教程-第37课-mp3播放器(2)
  • AS3基础教程-第50课-简易计算器(3)
  • 热门搜索
    染发剂什么牌子安全 吊牌价是什么意思 淘宝直通车是什么意思 销声匿迹是什么意思 什么是众筹模式 尘埃的意思 三观尽毁是什么意思 认筹是什么意思 经常熬夜的人喝什么汤 先入为主的意思