Flash音乐播放器可多曲连放

修改
鏉ユ簮: junjun 浏览 2197 日期 2011-10-22 0

本次教程主要描述了如何制作一个flash音乐播放器可多曲连放的方法。

 简单说一下做法,具体看我的源文件。

  1.导入四个音乐文件,在库中右键-链接,标识符分别为:s01 s02 s03 s04

  2.做一音量控件,点击控件加as:

  on (press) {

  startdrag(this, true, left, top, right, bottom);

  }

  on (release) {

  stopdrag();

  }

  onclipevent (load) {

  top = _y;

  bottom = _y;

  left = _x;

  right = _x+150;

  _x += 75;

  }

  onclipevent (enterframe) {

  _root.mysound.setvolume(_x-left);

  }

  3.音频视觉效果

  做一个绿色的长方形,f8转为影片,实体名称为:line

  第一帧加as:

  _root.linemc.line._visible = false;

  _root.linemc.onenterframe = function() {

  for (var i = 0; i<20; i++) {

  duplicatemovieclip("line", "line"+i, i);

  with (_root.linemc["line"+i]) {

_x += 4*i;

_y = 0;

_yscale = math.round(math.random()*100);

    }

   }

  };

  stop();

  第二帧加as:

  _root.linemc.line._visible = false;

  _root.linemc.onenterframe = function() {

  for (var i = 0; i<20; i++) {

  duplicatemovieclip("line", "line"+i, i);

  with (_root.linemc["line"+i]) {

_x += 4*i;

_y = 0;

_yscale = 25;

    }

   }

  };

  stop();

  4.把各个配件安放好,控制音乐的按钮实体名称为:btnprev btnplay btnpause btnnext

  第三步做的音频视觉效果控件的实体名称为:linemc

  拉三个动态文本,变量分别为:pausetotaltime soundname txtbtn

  在第一帧加as:

  i = 1;//初始值

  s1 = "吻别的位置-李克勤";

  s2 = "phone杀令-陈慧琳";

  s3 = "世上只有-容祖儿";

  s4 = "越吻越伤心-张学友";

  mysound = new sound();//创建 sound 对象

  mysound.attachsound("s01");//调用库中链接标识符为s01的声音文件

  mysound.start();//开始播放

  mysound.onsoundcomplete = function() {//自动调用

[next]

  i++;

  if (i>4) {

  i = 1;

  }

  mysound.attachsound("s0"+i);

  mysound.start();

  };

  onenterframe = function () {

  pausetimes = math.round(mysound.position/1000);//声音文件已播放时间

  totaltimes = math.round(mysound.duration/1000);//声音文件总时间

  pausetotaltime = pausetimes+"s"+"/"+totaltimes+"s";

  soundname = eval("s"+i);//模拟数组

  trace(pausetotaltime);

  trace(i);

  };

  var song = true;//声明一个变量,song为true,即声音文件正在播放

  btnplay.onrelease = function() {

  if (song == false) {

  mysound.start(pausetimes);//从暂停秒数开始播放

  song = true;

  }

   _root.linemc.gotoandstop(1);

  };

  btnpause.onrelease = function() {

  if (song == true) {

  pausetimes = math.round(mysound.position/1000);

  mysound.stop();//暂停播放

  song = false;

  }

  _root.linemc.gotoandstop(2);

  };

  btnnext.onrelease = function() {

  i++;

  if (i>4) {

  i = 1;

  }

  mysound.stop();

  mysound.attachsound("s0"+i);

  mysound.start();

  _root.linemc.gotoandstop(1);

  };

  btnprev.onrelease = function() {

  i--;

  if (i<1) {

  i = 4;

  }

  mysound.stop();

  mysound.attachsound("s0"+i);

  mysound.start();

  _root.linemc.gotoandstop(1);

  };

  btnprev.onrollover = function() {

  _root.txtbtn = "上一首";

  };

  btnplay.onrollover = function() {

  _root.txtbtn = "播放";

  };

  btnpause.onrollover = function() {

  _root.txtbtn = "暂停";

  };

  btnnext.onrollover = function() {

  _root.txtbtn = "下一首";

  };

  btnprev.onrollout = function() {

[next]

  _root.txtbtn = "";

  };

  btnplay.onrollout = function() {

  _root.txtbtn = "";

  };

  btnpause.onrollout = function() {

  _root.txtbtn = "";

  };

  btnnext.onrollout = function() {

  _root.txtbtn = "";

  };

  如果觉得文件太大,可将attachsound改为loadsound,加载外部音乐文件,代码作部分修改,原理一样的。

由于文件超标,源文件删掉音乐文件。打开源文件后,导入四个声音文件,加上链接标识符。

  原文件:mp3empty.fla (56.0k)

      

      水母.fla (187.0k)

评论

{{ username ? username.charAt(0).toUpperCase() : '?' }}
Ctrl+Enter 发布
{{ (c.username || c.author_name || '?').charAt(0).toUpperCase() }}
{{ c.username || c.author_name }} {{ Utils.formatDate(c.created_at) }}