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

2025-11-22 21:15:36

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

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢