首页 | 互联网 | IT动态 | Cisco | Windows | Linux | Java | .Net | Oracle | 华为 | 存储世界 | 服务器 | 网络设备 | IDC | 安全 | 求职招聘
IT培训 | 数字网校 | 技术专题 | 电子书下载 | 教学视频 | 网页设计 | 平面设计 | 解决方案 | 直播室 | 虚拟考场 | 搜索 | 博客 | 沙龙 | 论坛
 Dreamweaver | Flash
 Fireworks  | Frontpage
 HTML/CSS  | Javascript
 Photoshop  | CorelDraw
 AuotoCAD   | Illustrator
 Freehand
 3DMax    | Authorware
 Director   | Maya
 PP点点通 | 迅雷 | BT
 eMule | FlashGet | Nero
 Ghost | Outlook | IE
 Maxthon | Office
 QQ | MSN | 网易泡泡
 Skype | 雅虎通 | 新浪UC

最新文章

您现在的位置: 中国IT实验室 >> 网页设计 >> Flash >> Flash制作实例 >> 文章正文


Flash组件实现多首mp3连放


中国IT实验室收集整理  2008-1-25  佚名  保存本文  推荐给好友  收藏本站


◆ 网页平面多媒体培训、认证考试免费咨询热线:400-700-5807   进入网络咨询平台

  Flash MX 2004 的Media组件确实不错,大家在使用的时候可能发现MediaDisplay组件只能播放一首mp3,如果要让他播放完一首歌曲后再接着播放另一首歌曲就不行了。今天就来给大家介绍一下怎样用MediaController和MediaDisplay组件实现多首mp3的联播。

  播放器界面如图:

  思路如下:

  歌曲列表用一外部XML文件来记录,便于修改。开始的时候定义一XML对象,并载入外部XML文件,载入后再将歌曲列表提取出来放入一数组中。接着用attachMovie()方法将MediaController和MediaDisplay组件载入舞台,然后设置各自的参数,并将二者相关联(Media.associateController()或者Media.associateDisplay()方法都行)当一首歌曲播放完后,触发MediaDisplay的complete事件,在此事件中我将MediaController和MediaDisplay组件卸载并重新载入MediaController和MediaDisplay组件(使用attachMovie()方法)并给一新的实例名,并设置MediaDisplay组件的播放内容为下一首歌曲,如此往复来播放所有的歌曲。

  制作步骤:

  1.新建一个FLASH文档,设置舞台大小:220*70。

  2.将组件MediaController和MediaDisplay拖入舞台,然后从舞台上删除。这样做的目的是将这两个组件载入库中,为接下来用attachMovie()方法将MediaController和MediaDisplay组件载入舞台做好准备。

  3.新建一层,命名为function。在该层的第一帧上输入如下AS代码:


function init(){
 flagNum = 1;
 //播放歌曲的标示
 mp3Num = 0;
 attachController();
};
//将MediaController和MediaDisplay组件载入舞台并初始化
function attachController(){
//将MediaDisplay组件载入舞台并给定义实例名 "mp3Container" + flagNum
  _root.attachMovie("MediaDisplay","mp3Container" + flagNum,2);
  //设置组件初始参数
  with(_root["mp3Container" + flagNum]){
   _x = 250;
   _y = 0;
   setMedia(myArray[mp3Num],"MP3");
}
//将MediaController组件载入舞台并给定义实例名 "mp3Controller" + flagNum
_root.attachMovie("MediaController","mp3Controller" + flagNum,1);
//设置组件初始参数
with(_root["mp3Controller" + flagNum]){
    _x = 0;
    _y = 0;
   activePlayControl = false;
   controllerPolicy = "on";
   //将MediaController和MediaDisplay组件相关联
   associateDisplay(_root["mp3Container" + flagNum]);
  };
};
function playNext(){
//将MediaController和MediaDisplay组件从舞台上删除
    _root["mp3Controller" + flagNum].removeMovieClip();
    _root["mp3Container" + flagNum].removeMovieClip();
    flagNum += 1;
    mp3Num += 1;
    //如果播放到歌曲的最后一首,将mp3Num = 0,意为将从头开始播放
    if(mp3Num == mp3Total) mp3Num = 0;
    //重新载入MediaController和MediaDisplay组件,并给一新的实例名
       attachController();
       //因为每播放完一首歌曲后MediaController和MediaDisplay组件从舞台上被卸载
       //然后又重新载入MediaController和MediaDisplay组件并给了另外一个实例名
       //所以要重新向注册的监听器广播事情
       _root["mp3Container" + flagNum].addEventListener("complete", myListener);
};

 4.新建一层,命名为action,在该层第一帧输入一下AS代码:

stop();
//数组myArray用来存储 载入的XML文档中的歌曲名称
var myArray = new Array();
//歌曲的总数
var mp3Total:Number;
var myXml = new XML();
myXml.ignoreWhite = true;
myXml.load("mp3list.xml");
myXml.onLoad = function() {
 var e = myXml.firstChild.childNodes;
 mp3Total = e.length;
 for (var i = 0; i
  myArray.push(e[i].attributes["title"]);
 }
 init();
 _root["mp3Container"+flagNum].addEventListener("complete", myListener);
};
var myListener = new Object();
myListener.complete = function(eventObject) {
 playNext();
};


  5.保存文件,Ctrl+Enter测试影片并输出SWF文件。测试影片时会有错误提示,不用担心,这是由于没有生成XML文档的缘故。

  6.创建XML文档:

<?xml version="1.0" encoding="utf-8"?>
<mp3Lists>
  <item title="1.mp3" />
  <item title="2.mp3" />
</mp3Lists>

  将该文件保存在与原SWF文件相同的文件夹中,命名为mp3list.xml。

[1] [2] 下一页  

【责编:Luzi】


 相关文章  推荐文章
将swf文件转成可自动播放的exe文件
Flash中如何调用exe可执行文件?
HTML和CSS在Flash中的应用
如何合并不同帧频(fps)的Flash文件
使用Flash引导线制作雪花飘飘动画
Flash AS代码常用调试语句trace()的使用
Flash 8制作模糊遮罩效果细析
小技巧测试Flash中AS代码的执行速度
Flash AS制作上升的水泡效果动画
Flash动画制作小野人玩摇滚实例
  文章评论