漫步人生 发表于 2018-10-7 09:24:29

【FLASH8.0】纯代码制作MP3音乐播放器

本帖最后由 漫步人生 于 2018-10-9 10:23 编辑

http://mb.xiangjiangriverwater.com/88k.swf


//新建as2.0文档(设置默认),在主场景第1帧粘贴以下语句【把文字 代码全部复制粘贴】

//画背景并定位
this.createEmptyMovieClip("beijing",this.getNextHighestDepth());
with (beijing) {
beginFill(0x666699);
moveTo(0,0);
lineTo(300,0);
lineTo(300,370);
lineTo(0,370);
endFill();
import flash.filters.*;
filters = ;
_x = 175;
_y = 75;
}

//画小框并定位
this.createEmptyMovieClip("xiaokuang",this.getNextHighestDepth());
with (xiaokuang) {
beginFill(0x000000);
lineStyle(1,0x33cc33,100);
moveTo(0,0);
lineTo(280,0);
lineTo(280,60);
lineTo(0,60);
endFill();
_x = 185;
_y = 100;
}

//画5个黑三角并定位
this.createEmptyMovieClip("sanjiao",this.getNextHighestDepth());
with (sanjiao) {
beginFill(0x000000);
moveTo(0,0);
lineTo(12,7.5);
lineTo(0,15);
endFill();
}
sanjiao._visible = 0;
for (i=1; i<=5; i++) {
duplicateMovieClip("sanjiao", "sanjiao"+i, this.getNextHighestDepth());
sanjiao1._x = 235;
sanjiao2._x = 187;
sanjiao3._x = 194;
sanjiao4._x = 212;
sanjiao5._x = 219;
sanjiao2._xscale = sanjiao3._xscale=50;
sanjiao4._xscale = sanjiao5._xscale=-50;
sanjiao1._y = sanjiao2._y=sanjiao3._y=sanjiao4._y=sanjiao5._y=190;
}

//画2个矩形并定位
this.createEmptyMovieClip("juxing",this.getNextHighestDepth());
with (juxing) {
beginFill(0x000000);
moveTo(0,0);
lineTo(5,0);
lineTo(5,12);
lineTo(0,12);
endFill();
}
juxing._visible = 0;
for (i=1; i<=2; i++) {
duplicateMovieClip("juxing", "juxing"+i, this.getNextHighestDepth());
juxing1._x = 257;
juxing1._y = juxing2._y=191.5;
juxing2._x = 264.2;
}

//画小喇叭并定位
this.createEmptyMovieClip("laba",this.getNextHighestDepth());
with (laba) {
beginFill(0x000000);
moveTo(0,4);
lineTo(6,4);
lineTo(12,0);
lineTo(12,15);
lineTo(6,10);
lineTo(0,10);
endFill();
_x = 278;
_y = 190;
}

//画音量控制的底图并定位
this.createEmptyMovieClip("yinliangdi",this.getNextHighestDepth());
with (yinliangdi) {
beginFill(0x000000);
moveTo(0,10);
lineTo(70,0);
lineTo(70,10);
endFill();
_x = 295;
_y = 192;
}

//画音量控制滑块并能拖动
this.createEmptyMovieClip("yinlianghuakuai",this.getNextHighestDepth());
with (yinlianghuakuai) {
beginFill(0x996600);
moveTo(0,0);
lineTo(6,0);
lineTo(6,10);
lineTo(0,10);
endFill();
_x = 359;
_y = 192;
}
yinlianghuakuai.onPress = function() {
startDrag(this, false, 295, 192, 359, 192);
};
yinlianghuakuai.onRelease = yinlianghuakuai.onReleaseOutside=function () {
stopDrag();
};

//画显示进度的底图并定位
this.createEmptyMovieClip("jindutiaodi",this.getNextHighestDepth());
with (jindutiaodi) {
beginFill(0x000033);
moveTo(0,0);
lineTo(180,0);
lineTo(180,3);
lineTo(0,3);
endFill();
_x = 185;
_y = 185;
}

//画下载进度条并定位
this.createEmptyMovieClip("xiazaijindutiao",this.getNextHighestDepth());
with (xiazaijindutiao) {
beginFill(0x663300);
moveTo(0,0);
lineTo(180,0);
lineTo(180,3);
lineTo(0,3);
endFill();
_x = 185;
_y = 185;
}

//画播放进度条并定位
this.createEmptyMovieClip("bofangjindutiao",this.getNextHighestDepth());
with (bofangjindutiao) {
beginFill(0x009900);
moveTo(0,0);
lineTo(180,0);
lineTo(180,3);
lineTo(0,3);
endFill();
_x = 185;
_y = 185;
}

//创建“已下载”文本
this.createTextField("yixiazai_txt",this.getNextHighestDepth(),185,165,0,0);
my_fmt = new TextFormat();
my_fmt.font = "宋体";
my_fmt.color = 0x000000;
my_fmt.size = 12;
yixiazai_txt.text = "已下载:";
yixiazai_txt.autoSize = true;
yixiazai_txt.setTextFormat(my_fmt);

//创建“已播放”文本
this.createTextField("yibofang_txt",this.getNextHighestDepth(),285,165,0,0);
my_fmt = new TextFormat();
my_fmt.font = "宋体";
my_fmt.color = 0x000000;
my_fmt.size = 12;
yibofang_txt.text = "已播放:";
yibofang_txt.autoSize = true;
yibofang_txt.setTextFormat(my_fmt);

//创建显示“下载百分比”的动态文本
this.createTextField("xiazaibfb_txt",this.getNextHighestDepth(),240,163,0,0);
my_fmt = new TextFormat();
my_fmt.font = "宋体";
my_fmt.color = 0x000000;
my_fmt.size = 12;
xiazaibfb_txt.autoSize = true;
xiazaibfb_txt.setTextFormat(my_fmt);

//创建显示“播放百分比”的动态文本
this.createTextField("bofangbfb_txt",this.getNextHighestDepth(),340,163,0,0);
my_fmt = new TextFormat();
my_fmt.font = "宋体";
my_fmt.color = 0x000000;
my_fmt.size = 12;
bofangbfb_txt.autoSize = true;
bofangbfb_txt.setTextFormat(my_fmt);

//创建5个分别覆盖在“快进”、“快退”、“播放”、“暂停”和“喇叭”上的隐形按钮
this.createEmptyMovieClip("yinxinganniu",this.getNextHighestDepth());
with (yinxinganniu) {
beginFill(0xffffff,30);
moveTo(0,0);
lineTo(15,0);
lineTo(15,15);
lineTo(0,15);
endFill();
_x = 185;
_y = 190;
}
yinxinganniu._visible = 0;
for (i=1; i<=5; i++) {
duplicateMovieClip(yinxinganniu, "yinxinganniu"+i, this.getNextHighestDepth());
this["yinxinganniu"+i]._x = 185+22.8*(i-1);
this["yinxinganniu"+i]._y = 190;
this["yinxinganniu"+i]._alpha = 0;
this["yinxinganniu"+i].onRollOver = function() {
this._alpha = 70;
};
this["yinxinganniu"+i].onRollOut = function() {
this._alpha = 0;
};
}

//快进
yinxinganniu1.onPress = function() {
mysound.stop();
mysound.start(mysound.position/1000+10);
};

//快退
yinxinganniu2.onPress = function() {
mysound.stop();
mysound.start(mysound.position/1000-10);
};

//播放
yinxinganniu3.onPress = function() {
if (tt) {
mysound.stop();
mysound.start(tt);
} else {
mysound.stop();
mysound.start(0);
}
for (i=1; i<=20; i++) {
_root["dianpingtiao"+i]._visible = 1;
}
};


紧接下面的代码

漫步人生 发表于 2018-10-7 09:26:10

本帖最后由 漫步人生 于 2018-10-9 10:20 编辑

紧接着下面代码:
//暂停
yinxinganniu4.onPress = function() {
mysound.stop();
tt = mysound.position/1000;
for (i=1; i<=20; i++) {
_root["dianpingtiao"+i]._visible = 0;
}
};

//画红斜杠并定位
this.createEmptyMovieClip("hongxian",this.getNextHighestDepth());
with (hongxian) {
lineStyle(2,0xff0000,100);
moveTo(0,0);
lineTo(13,13);
_x = 278;
_y = 190;
}
hongxian._visible = 0;

//静音
k = 0;
yinxinganniu5.onPress = function() {
k++;
if (k%2 == 1) {
yinlianghuakuai._x = 295;
hongxian._visible = 1;
for (i=1; i<=20; i++) {
_root["dianpingtiao"+i]._visible = 0;
}
} else {
yinlianghuakuai._x = 359;
hongxian._visible = 0;
for (i=1; i<=20; i++) {
_root["dianpingtiao"+i]._visible = 1;
}
}
};

//画20根电频条并定位
this.createEmptyMovieClip("dianpingtiao",this.getNextHighestDepth());
with (dianpingtiao) {
beginFill(0x005555);
moveTo(0,0);
lineTo(7,0);
lineTo(7,-35);
lineTo(0,-35);
endFill();
}
dianpingtiao._visible = 0;
for (i=1; i<=20; i++) {
duplicateMovieClip("dianpingtiao", "dianpingtiao"+i, this.getNextHighestDepth());
this["dianpingtiao"+i]._visible = 0;
this["dianpingtiao"+i]._x = 187+9*(i-1);
this["dianpingtiao"+i]._y = 160;
}

//创建歌名文本
this.createTextField("geming_txt",this.getNextHighestDepth(),185,218,0,0);
my_fmt = new TextFormat();
my_fmt.font = "宋体";
my_fmt.color = 0x003366;
my_fmt.size = 20;
geming_txt.text = "1、送你一首吉祥的歌\n2、我和草原有个约定\n3、站在草原望北京\n4、美丽的草原我的家\n5、乌兰图雅《女人花》\n6、乌兰图雅《草原妹妹》\n7、乌兰图雅《守望相助》\n8、乌兰图雅《信天游》";
geming_txt.autoSize = true;
geming_txt.setTextFormat(my_fmt);

//签名
this.createTextField("qianming_txt",this.getNextHighestDepth(),298,425,0,0);
my_fmt6 = new TextFormat();
my_fmt6.font = "宋体";
my_fmt6.color = 0xFFFFFF;
my_fmt6.size = 15;
qianming_txt.text = "制作:漫步人生";
qianming_txt.autoSize = true;
qianming_txt.setTextFormat(my_fmt6);

//作品名
this.createTextField("timu_txt",this.getNextHighestDepth(),220,78,0,0);
my_fmt7 = new TextFormat();
my_fmt7.font = "黑体";
my_fmt7.color = 0xccccff;
my_fmt7.size = 18;
timu_txt.text = "纯代码MP3播放器   手动播放";
timu_txt.autoSize = true;
timu_txt.setTextFormat(my_fmt7);

//画覆盖在歌名文本上的隐形按钮
this.createEmptyMovieClip("geminganniu",this.getNextHighestDepth());
with (geminganniu) {
beginFill(0x000000,10);
moveTo(0,0);
lineTo(185,0);
lineTo(185,22);
lineTo(0,22);
endFill();
_x = 185;
_y = 220;
}
geminganniu._visible = 0;
for (i=1; i<=8; i++) {
duplicateMovieClip("geminganniu", "geminganniu"+i, this.getNextHighestDepth());
this["geminganniu"+i]._y = 220+20*(i-1);
this["geminganniu"+i]._alpha = 10;
this["geminganniu"+i].onRollOver = function() {
this._alpha = 90;
};
this["geminganniu"+i].onRollOut = function() {
this._alpha = 0;
};
}

//创建显示当前播放曲目名的动态文本
this.createTextField("gm_txt",this.getNextHighestDepth(),0,0,0,0);
gm_txt.autoSize = "left";
gm_txt.textColor = 0x999900;
gm_txt._x = 190;
gm_txt._y = 102;

//自定义函数
function yy(geming, dizhi) {
//边加载边播放
mysound = new Sound();
mysound.loadSound(dizhi,true);
gm_txt.text = geming;
//反复播放
mysound.onSoundComplete = function() {
yy(geming,dizhi);
};
for (i=1; i<=20; i++) {
_root["dianpingtiao"+i]._visible = 1;
}
}

//按下播放相应曲目
geminganniu1.onPress = function() {
yy("1、送你一首吉祥的歌","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-01~1.mp3");
};
geminganniu2.onPress = function() {
yy("2、我和草原有个约定","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-02~1.mp3");
};
geminganniu3.onPress = function() {
yy("3、站在草原望北京","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-03~1.mp3");
};
geminganniu4.onPress = function() {
yy("4、美丽的草原我的家","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-04~1.mp3");
};
geminganniu5.onPress = function() {
yy("5、乌兰图雅《女人花》","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-05~1.mp3");
};

geminganniu6.onPress = function() {
yy("6、乌兰图雅《草原妹妹》","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-06~1.mp3");
};

geminganniu7.onPress = function() {
yy("7、乌兰图雅《守望相助》","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-07~1.mp3");
};


geminganniu8.onPress = function() {
yy("8、乌兰图雅《信天游》","http://hljhsgx.hfdn.openstorage.cn/hlj929/160928/171018sss/14-09~1.mp3");
};


//逐帧刷新
onEnterFrame = function () {
//电频条跳动
for (i=1; i<=20; i++) {
this["dianpingtiao"+i]._yscale = random(120-4*(i-1));
}
//下载进度条显示下载进度
xiazaijindutiao._xscale = int(mysound.getBytesLoaded()/mysound.getBytesTotal()*100);
//播放进度条显示播放进度
bofangjindutiao._xscale = int(mysound.position/mysound.duration*100);
//显示下载百分比
xiazaibfb_txt.text = xiazaijindutiao._xscale+"%";
//显示播放百分比
bofangbfb_txt.text = bofangjindutiao._xscale+"%";
//拖动滑块控制音量
mysound.setVolume(yinlianghuakuai._x-295)/64*100;
};
// 测试,OK!

源码下载:


岩新新 发表于 2018-10-7 09:41:17

欣赏漫步老师精彩!

大海無邊 发表于 2018-10-7 09:51:44

非常精彩

大海無邊 发表于 2018-10-7 09:52:04

制作一如即往的精彩支持點贊

雪墨 发表于 2018-10-7 18:03:44

创作辛苦,谢谢分享

红松故乡 发表于 2018-10-8 12:22:54

欣赏精彩制作,点赞。

依恋月影 发表于 2018-10-8 18:23:59


欣赏精彩制作,点赞。
页: [1]
查看完整版本: 【FLASH8.0】纯代码制作MP3音乐播放器