《mp3网络播放器》的制作方法
【实例说明】:
本例制作一个mp3网络播放器的效果。本实例制作时为了读者能够清楚的看清图形,制作时作了放大处理,读者在实际制作时应该把各个元件尽量制作小一些,这栏看起来效果是小巧快捷。
【操作步骤】:
〖一〗、新建文档
- 单击“文件”/“新建”命令,创建一个新文档;
- 单击“修改”/“文档”命令;在“文档属性”对话框中设置“尺寸”为600×100,背景色为黑色;单击“确定”按钮。
- 双击“图层1”;重新命名为“背景层”;选中第2帧,按F5键插入“帧”;
〖二〗创建播放器
- 总体效果图:

- 制作十个按钮:
把“播放、上一曲、暂停、下一曲及1、2、3、4、5、6”做成十个按钮备用。
- 制作音量控制影片剪辑:(实例名称为Msound)
先制作“喇叭”、“音量条”两个图形元件;再制件一个“音量按钮”元件(实例名称为Bsound);然后将这三个元件全部选取,按F8键将其转换为“影片剪辑”元件;
- 再创建一个动态文本框:(变量名为show)
用于显示音乐名称。动态文本框的对齐方式要选择“两端对齐”方式。
〖三〗创建图层:
选中“背景层”;单击添加新图层按钮新建一个“图层2”;并修改其名称为“语言层”;选中第2帧;按F7键插入“空白关键帧”;
〖四〗添加语言:
- 选中“
”按钮,添加如下语言:
on (release) {
loaded();//调用刚才定义好的函数!在播放也会调用到!
mySound.stop();// 没有这句,在歌曲未放完的时候按反复按播放按钮会出现多首叠放的BUG!
soundposition = mysound.position/1000;// 获得声音已播放的毫秒数;除以1000是因为场景中加载声音是以秒为单位;
mySound.onLoad = function() {
mySound.start(soundposition, 1);
};//实现声音从暂停的位置处接着播放,位置由变量soundposition获得;
mySound.loadSound("sound/s"+sname+".mp3", true);
_root.play.gotoAndStop(1);//使播放钮变为绿色;
}
- 选中“
”按钮,添加如下语言:
on (release) {
if (sname>1) {// 判断曲目必须是大于1并小于6;
sname = sname-1;
_root.gotoAndPlay(2);//使场景的第二帧代码刷新;即实现换歌;
_root.play.gotoAndStop(1);//使播放钮变为绿色;
} else {
sname = 6;
_root.gotoAndPlay(2);//使场景的第二帧代码刷新;即实现换歌;
_root.play.gotoAndStop(1);//使播放钮变为绿色;
}
}
- 选中“
”按钮,添加如下语言:
on (release) {
mySound.stop();//声音停止;
play.gotoAndStop(2);//使播放钮变为灰色;
delete _root.onEnterFrame;//删除占用CPU资源的代码onEnterFrame;
}
- 选中“
”按钮,添加如下语言:
on (release) {
if (sname<6) {// 判断曲目必须是小于6并大于1;
sname = sname+1;
_root.gotoAndPlay(2);//使场景的第二帧代码刷新;即实现换歌;
_root.play.gotoAndStop(1);//使播放钮变为绿色;
} else {
sname = 1;
_root.gotoAndPlay(2);//使场景的第二帧代码刷新;即实现换歌;
_root.play.gotoAndStop(1);//使播放钮变为绿色;
}
}
- 选中音量控制影片剪辑中的“
”按钮,添加如下语言:
on (press) {
startDrag("_root.Msound.Bsound", false, 0, 0, 100, 0);//限制被拖动的范围;
}
on (release) {
stopDrag();//停止拖动;
}
- 选中“1”按钮,添加如下语言:
on (release) {
sname = 1;//六个按钮的变量不同分别代表六首歌;
_root.gotoAndPlay(2);//使场景的第二帧代码刷新;即实现换歌;
_root.play.gotoAndStop(1);//使播放钮变为绿色;
}
- 选中“2”按钮,添加如下语言:
on (release) {
sname = 2;//六个按钮的变量不同分别代表六首歌;
_root.gotoAndPlay(2);//使场景的第二帧代码刷新;即实现换歌;
_root.play.gotoAndStop(1);//使播放钮变为绿色;
}
- 选中“3”按钮,添加如下语言:
on (release) {
sname =3 ;//六个按钮的变量不同分别代表六首歌;
_root.gotoAndPlay(2);//使场景的第二帧代码刷新;即实现换歌;
_root.play.gotoAndStop(1);//使播放钮变为绿色;
}
- 选中“4”按钮,添加如下语言:
on (release) {
sname =4 ;//六个按钮的变量不同分别代表六首歌;
_root.gotoAndPlay(2);//使场景的第二帧代码刷新;即实现换歌;
_root.play.gotoAndStop(1);//使播放钮变为绿色;
}
- 选中“5”按钮,添加如下语言:
on (release) {
sname = 5;//六个按钮的变量不同分别代表六首歌;
_root.gotoAndPlay(2);//使场景的第二帧代码刷新;即实现换歌;
_root.play.gotoAndStop(1);//使播放钮变为绿色;
}
- 选中“6”按钮,添加如下语言:
on (release) {
sname =6 ;//六个按钮的变量不同分别代表六首歌;
_root.gotoAndPlay(2);//使场景的第二帧代码刷新;即实现换歌;
_root.play.gotoAndStop(1);//使播放钮变为绿色;
}
- 选中“语言层”的第1帧,添加如下语言:
onLoad = function () {
sname = 1;
// 声明歌曲序号变量,后面要用到它;比如下面要用到它来实现字幕的内容还有第二帧要用它来确定要播放哪首歌;
count = 0;
// 在AS2.0里就必须加这句; AS1.0就不用;意思也是声明变量,在实现字幕的滚动时用到;
};
//以下代码只用于实现字幕的滚动 加载声音的代码我全放到第二帧上了
function loaded() {
//自定义调用函数loaded()以便以后调用,
_root.onEnterFrame = function() {
_root.mySound.setVolume(_root.Msound.Bsound._x);
//这句代码是实时获取声音的大小,本来我是放在控制音量的按钮上的,但发有BUG!因为同时用两个onEnterFrame会产生冲突!
count += 1;
show = mbsubstring(this["text"+sname], count-15, count);
//这句就是让字幕滚动;注意这里的"show"!它来自动态文本框的变量名!
if (count>mblength(this["text"+sname])-2) {
//这个if用于判断字幕滚完后又从头开始滚动;
count = 0;
}
};
}
loaded();
//调用刚才定义好的函数!在播放也会调用到!
//以下是定义动态字幕要显示的内容!
text1 = "Andy.mp3????? ";
text2 = "不得不爱.mp3??? ";
text3 = "不要在来伤害我.mp3???? ";
text4 = "劲舞团 -今晚我感觉离你很近.mp3???? ";
text5 = "爱情海洋.mp3???? ";
text6 = "禅舞不二.mp3???? ";
- 选中“语言层”的第2帧,添加如下语言:
if (sname<=6) {
mySound.stop();// 没有这句,在歌曲未放完的时候按播放按钮加载新的歌曲会出现两首叠放的BUG!
mySound = new Sound();// 声明mySound为新的声音
mySound.loadSound("sound/s"+sname+".mp3",true);// 从外部加载声音;请注意路径和文件名!
mySound.start();// 加载完毕后开始播放
stop();// 场景停在第二帧
mySound.onSoundComplete = function() {
sname = sname+1;
gotoAndPlay(1); // 判断声音放完后,变量sname加1,场景跳到第三帧播放,即播放下一首;
};
} else {
sname = 1;//实现播六首后回到第一首;
}
〖五〗创建音乐文件夹,并重命名音乐名称:
找到存放“mp3网络播放器”.swf文件的位置;单击“文件/.新建/文件夹”命令,新建立一个文件夹;文件夹名称为“sound”;然后向其中添加六首mp3音乐;依次将这些音乐分别重新命名为“s1.mp3”、 “s2.mp3”、“s3.mp3”、“s4.mp3”、“s5.mp3” 、“s6.mp3”。
〖六〗、最后按“Ctrl+Enter”组合键测试影片
附言:
1、读者在以后需要换新音乐时,只需要把相应的mp3音乐放入到“sound”文件夹中,然后把音乐名分别改为“s1.mp3”、 “s2.mp3”、“s3.mp3”、“s4.mp3”、“s5.mp3” 、“s6.mp3”即可。
2、传到网络上使用后如何添加一个下载进度提示:
在原来的文本框的位置叠加了个文本框!(变量名为:下载进度),然后在场景新建个空的MC加上如下代码:
onClipEvent (enterFrame) {
a = int(mySound.getBytesLoaded()/1000);
b = int(mySound.getBytesTotal()/1000);
_parent.下载进度 = int((a/b)*100)+"%";
if (a>=b) {
_parent.下载进度 = " 2";
}
}
|