打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
音乐播放器--组装
音乐播放器(8):组装

难点:把前面的各段代码进行整合
1、新建FLASH CS3文档,保存名为“音乐播放器”,保存在存有音乐的文件夹内。设置文档大小:252×114像素,帧频:24fps。
2、第一层名为“播放器背景”,在该层画一个播放器背景。

3、新建图层,名为“播放进度框”,画一个无边框的圆角矩形,边角半径为8,宽202高6,填充颜色为#006600,使其垂直水平于舞台。

4、新建图层,名为“播放进度背景”,画一个无边框的圆角矩形,边角半径为8,宽200高4,从上到下填充#99CC00到#55802B渐变色,使其垂直水平于舞台。

5、新建图层,名为“播放进度条”,画一个无边框的圆角矩形,边角半径为0,宽202高6,从上到下填充#00CCFF到#0066FF渐变色,使其垂直水平于舞台,转换为名为“播放进度条”的影片剪辑。在场景中的实例名为“bfjdt_mc”。

6、新建图层,名为“播放进度条遮罩”,把“播放进度背景”图层上帧复制并粘贴到“播放进度条遮罩”图层上,右键选择“遮罩层”。

7、新建图层,名为“进度控制”,画一个无边框的圆角矩形,边角半径为0,宽200高6,填充颜色任意,使其垂直水平于舞台,转换为名为“进度控制”的按钮元件,并将“弹起”帧上的图形拖到“点击”帧上。在场景中的实例名为“jdcz_btn”。

8、新建图层,名为“按钮”,放七个按钮(菜单、退出、停止、上一首、下一首、播放、暂停),实例名分别为“cd_btn”、“quit_btn”、“tz_btn”、“sys_btn”、“xys_btn”、“bf_btn”“zt_btn”。
(1)画一个三角形,转换为按钮元件,在“指针经过”的帧上打上文字“MENU”(即“菜单”),把该按钮放在场景中的左上角,其实例名为“cd_btn

”。
(2)画一个三角形,转换为按钮元件,在“指针经过”的帧上打上文字“QUIT”(即“退出”),把该按钮放在场景中的右上角,其实例名

为“quit_btn”。
(3)画一个矩形,再在中心画一个停止的标志形状,转换为按钮元件,把该按钮放在场景中的左下角,其实例名为“tz_btn”。
(4)画一个矩形,再在中心画一个上一首的标志形状,转换为按钮元件,把该按钮放在场景中的左下角,前一个按钮后,其实例名为“sys_btn”。
(5)画一个矩形,再在中心画一个下一首的标志形状,转换为按钮元件,把该按钮放在场景中的左下角,前一个按钮后,其实例名为“xys_btn”。
(6)画一个圆形,再在中心画一个暂停的标志形状,转换为按钮元件,把该按钮放在场景中的中下方,其实例名为“zt_btn”。
(7)画一个圆形,再在中心画一个播放的标志形状,转换为按钮元件,把该按钮放在场景中的中下方,与前一个按钮大小坐标相同,其实例名为“bf_btn”。
以上按钮在场景中的分布如下图所示:


9、新建图层,名为“音量框”,画一个无边框的矩形,边角半径为0,宽67高6,填充颜色为#006600,X:159、Y:81。

10、新建图层,名为“音量背景”,画一个无边框的矩形,边角半径为0,宽65高4,从上到下填充#99CC00到#55802B渐变色,X:160、Y:82。

11、新建图层,名为“音量条”,画一个无边框的圆角矩形,边角半径为0,宽65高4,从上到下填充#00CCFF到#0066FF渐变色,坐标X:160、Y:82。转换为名为“音量条”的影片剪辑(注册点在左上角)。在场景中的实例名为“ylt_mc”。

12、新建图层,名为“音量控制”,画一个无边框的矩形,边角半径为0,宽65高4,填充颜色任意,坐标X:160、Y:82。转换为名为“音量控制”的按钮元件,并将“弹起”帧上的图形拖到“点击”帧上。在场景中的实例名为“ylcz_btn”。

13、新建图层,名为“歌名”,拉一个动态文本,宋体、12、黑色,在场景中的实例名为“gm_txt”。

14、创建两个矩形按钮,一个是“添加本地歌曲”,另一个是“显示歌曲列表”,并且分别打上文字“添加本地歌曲”和“显示歌曲列表”;新建影片剪辑,名为“cd_mc”,在该剪辑中画一个矩形作为背景,并把刚才制作的两个按钮拖进来,其实例名分别为“tjgq_btn”、“lbxs_btn”;从库中把名为“cd_mc”的影片剪辑拖入到场景合适的位置上,实例名为“cd_mc”。

15、新建图层,名为“歌曲列表背景”,把第一层的播放器背景复制到该图层上,并转换为影片剪辑,在场景中的实例名为“gqlbbj_mc”;双击该影片剪辑,在其中新建图层名为“收起按钮”,画一个三角形,转换为按钮元件,在“指针经过”的帧上打上文字“RETRACT”(即“收起”),把该按钮放在播放器背景的中底部,其实例名为“sqlb_btn”。

16、新建图层,名为“AS”,在帧上写如下代码:
stage.scaleMode=StageScaleMode.NO_SCALE;
var _sound:Sound;
var _channel:SoundChannel=new SoundChannel();
var yl:Number=1;
var yinliang:SoundTransform;
var dzarr:Array=new Array();
var dizhi:URLRequest=new URLRequest();
var bxzr:Sprite=new Sprite();
addChildAt(bxzr,1);
var bx:Sprite=new Sprite();
bxzr.addChild(bx);
var _arr:ByteArray = new ByteArray();
var n:Number=0;
var loaded:int;
var total:int;
var _length:int;
var position:int;
var hcbfb:Number;
var bfjdbfb:Number;
var _playing:Boolean=true;
var _stoping:Boolean=false;
var file:FileReferenceList;
var p:uint=0;
var m2:int;
bfjdt_mc.visible=false;
gqlbbj_mc.visible=false;
cd_mc.visible=false;
var gqlb_mc:Sprite=new Sprite();
addChild(gqlb_mc);
gqlb_mc.visible=false;
//弹出菜单
cd_btn.addEventListener(MouseEvent.CLICK,xscd);
function xscd(e:MouseEvent):void {
 cd_mc.visible=true;
}
//收起歌曲列表
gqlbbj_mc.sqlb_btn.addEventListener(MouseEvent.CLICK,sqlb);
function sqlb(e:MouseEvent):void {
 gqlbbj_mc.visible=false;
 gqlb_mc.visible=false;
}
//菜单的可见与不可见
cd_mc.addEventListener(MouseEvent.MOUSE_OVER,jgcd);
function jgcd(e:MouseEvent):void {
 cd_mc.visible=true;
}
cd_mc.addEventListener(MouseEvent.MOUSE_OUT,yccd);
function yccd(e:MouseEvent):void {
 cd_mc.visible=false;
}
//浏览文件按钮
cd_mc.tjgq_btn.addEventListener(MouseEvent.CLICK,lldj);
function lldj(e:MouseEvent):void {
 cd_mc.visible=false;
 file = new FileReferenceList();
 file.addEventListener(Event.SELECT,select);
 file.browse([new FileFilter("mp3文件","*.mp3")]);
}
function select(e:Event):void {
 zt_btn.visible=true;
 bf_btn.visible=false;
 removeChild(gqlb_mc);
 gqlb_mc=new Sprite();
 addChild(gqlb_mc);
 gqlbbj_mc.visible=false;
 gqlb_mc.visible=false;
 p=0;
 _channel.stop();
 dzarr.splice(0,dzarr.length);
 dzarr=new Array();
 var f:FileReference;
 for (var m:int = 0; m < e.target.fileList.length; m++) {
  f = FileReference(e.target.fileList[m]);
  dzarr.push(f.name);
 }
 if (dzarr.length>10) {
  dzarr.splice(10);
 }
 dizhi=new URLRequest(dzarr[0]);
 _sound=new Sound();
 _sound.load(dizhi);
 _channel=_sound.play();

 for (m2 = 0; m2 < dzarr.length; m2++) {
  var txt:TextField=new TextField();
  txt.width=112;
  txt.height=18;
  txt.selectable=false;
  gqlb_mc.addChildAt(txt,m2);
  txt.x=(m2%2)*120+10;
  txt.y=int(m2/2)*20+4;
  txt.text=(m2+1)+"."+dzarr[m2].replace(".mp3","");
  txt.addEventListener(MouseEvent.CLICK,xzgq);
  txt.addEventListener(MouseEvent.MOUSE_OVER,jggqlbx);
  txt.addEventListener(MouseEvent.MOUSE_OUT,ycgqlbx);
  txt.name="txt"+m2;
 }
 //添加监听事件
 addEventListener(Event.ENTER_FRAME,yx);
 cd_mc.lbxs_btn.addEventListener(MouseEvent.CLICK,xsgqlb);
}
//不断更新
function yx(event:Event):void {
 gm_txt.text=dzarr[p].slice(0,-4);
 loaded=_sound.bytesLoaded;
 total=_sound.bytesTotal;
 _length=_sound.length;
 position=_channel.position;
 if (_stoping) {
  position=0;
 } else {
  position=_channel.position;
 }
 if (total > 0) {
  bfjdt_mc.visible=true;
  hcbfb=loaded / total;
  _length/=hcbfb;
  bfjdbfb=position / _length;
  bfjdt_mc.scaleX=bfjdbfb;
  //频谱——跳动柱形
  bx.graphics.clear();
  SoundMixer.computeSpectrum(_arr,true,0);//将当前声音输出为ByteArray
  for (var i=0; i <200; i=i+5) {
   n = _arr.readFloat()*20;//把数据流读取成浮点数并扩大其值
   bx.graphics.lineStyle(3,0xFFFFFF,0.4,true,"noSacle","none");
   bx.graphics.moveTo(27+i,50);
   bx.graphics.lineTo(27+i,50-n);
  }
 }
 //音量
 yl=ylt_mc.scaleX;
 yinliang= _channel.soundTransform;
 yinliang.volume = yl;
 _channel.soundTransform. = yinliang;
 //添加循环播放监听事件
 _channel.addEventListener(Event.SOUND_COMPLETE,xhbf);
 //添加与删除下一首上一首监听事件
 if (p==0) {
  sys_btn.removeEventListener(MouseEvent.CLICK,sys);
 } else {
  sys_btn.addEventListener(MouseEvent.CLICK,sys);
 }
 if (p==dzarr.length-1) {
  xys_btn.removeEventListener(MouseEvent.CLICK,xys);
 } else {
  xys_btn.addEventListener(MouseEvent.CLICK,xys);
 }
}
//显示歌曲列表
function xsgqlb(e:MouseEvent):void {
 cd_mc.visible=false;
 gqlbbj_mc.visible=true;
 gqlb_mc.visible=true;
}
//鼠标经过歌曲列表项
function jggqlbx(e:MouseEvent):void {
 e.target.textColor=0x006600;
}
//鼠标移出歌曲列表项
function ycgqlbx(e:MouseEvent):void {
 e.target.textColor=0x000000;
}
//鼠标点击列表项选择歌曲
function xzgq(e:MouseEvent):void {
 zt_btn.visible=true;
 bf_btn.visible=false;
 gqlbbj_mc.visible=false;
 p=int(e.target.name.substr(3));
 gqlb_mc.visible=false;
 _channel.stop();
 dizhi=new URLRequest(dzarr[p]);
 _sound=new Sound();
 _sound.load(dizhi);
 _channel=_sound.play(0);
}
//播放进度控制
jdcz_btn.addEventListener(MouseEvent.CLICK,jdcz);
function jdcz(e:MouseEvent):void {
 _stoping=false;
 _playing=true;
 zt_btn.visible=true;
 bf_btn.visible=false;
 _channel.stop();
 bfjdbfb=(mouseX-26)/200;
 position =_length*bfjdbfb;
 _channel=_sound.play(position);
}
//音量大小控制
ylcz_btn.addEventListener(MouseEvent.CLICK,ylcz);
function ylcz(e:MouseEvent):void {
 ylt_mc.scaleX=(mouseX-160)/65;
}
//暂停播放与停止音乐
zt_btn.visible=false;
bf_btn.visible=true;
zt_btn.addEventListener(MouseEvent.CLICK,zt);
function zt(e:MouseEvent):void {
 _playing=false;
 zt_btn.visible=false;
 bf_btn.visible=true;
 position=_channel.position;
 _channel.stop();
}
bf_btn.addEventListener(MouseEvent.CLICK,bf);
function bf(e:MouseEvent):void {
 _stoping=false;
 _playing=true;
 _channel.stop();
 zt_btn.visible=true;
 bf_btn.visible=false;
 _channel=_sound.play(position);
}
tz_btn.addEventListener(MouseEvent.CLICK,tz);
function tz(e:MouseEvent):void {
 _stoping=true;
 _playing=false;
 zt_btn.visible=false;
 bf_btn.visible=true;
 _channel.stop();
}
//上一首下一首
function sys(event:Event):void {
 zt_btn.visible=true;
 bf_btn.visible=false;
 xys_btn.addEventListener(MouseEvent.CLICK,xys);
 _channel.stop();
 if (p>0) {
  p--;
  if (p==0) {
   p=0;
   sys_btn.removeEventListener(MouseEvent.CLICK,sys);
  }
 }
 dizhi=new URLRequest(dzarr[p]);
 _sound=new Sound();
 _sound.load(dizhi);
 _channel=_sound.play(0);
}
function xys(event:Event):void {
 zt_btn.visible=true;
 bf_btn.visible=false;
 sys_btn.addEventListener(MouseEvent.CLICK,sys);
 _channel.stop();
 if (p<dzarr.length-1) {
  p++;
  if (p==dzarr.length-1) {
   p=dzarr.length-1;
   xys_btn.removeEventListener(MouseEvent.CLICK,xys);
  }
 }
 dizhi=new URLRequest(dzarr[p]);
 _sound=new Sound();
 _sound.load(dizhi);
 _channel=_sound.play(0);
}
//循环播放
function xhbf(event:Event):void {
 p++;
 if (p==dzarr.length) {
  p=0;
 }
 dizhi=new URLRequest(dzarr[p]);
 _sound=new Sound();
 _sound.load(dizhi);
 _channel=_sound.play(0);
}
//退出播放器
quit_btn.addEventListener(MouseEvent.CLICK,gb);
function gb(e:MouseEvent):void {
 fscommand("quit");
}


17、用“FlashPacker”(下载地址:http://www.zineage.com/products/)将该发布的SWF进行打包成EXE文件(EXE文件与音乐放在一起),进行如下图所示的有关设置:





*********初学FLASH的人,都想制作一个MP3播放器。到现在为止,你的梦想成真了。本教程难免有很多出入,请大家斧正!


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
flash as3.0制作流式视频(flv)播放器的方法_Flash_紫苹果电脑网
flash常用代码!(精) - flash源文件 - Flash教程与作品 - 水世界素材...
调用多个SWF文件
自己写的模拟combobox的flex4实现,带分页,支持键盘操作
AS代码制作声控图片【附代码】
as3 和PHP 后台交互 大全
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服