您的位置: 首页 > 技术文档 > 多媒体制作 > 实现2004中Media组件多首mp3连放
FLASH MX 2004制作缓冲断层效果 回到列表 了解在Flash中的编程工作
 实现2004中Media组件多首mp3连放

作者:jackyshe 时间: 2004-07-27 文档类型:转载 来自:闪客帝国

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<mp3Total; 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。

7.在原文件目录下放入两首mp3,默认名称为1.mp3,2.mp3,这里的名称和歌曲数目大家可以自己修改XML文件。

到此为止,一个连放两首MP3的播放器就可以使用了,打开SWF文件,你将会听到优美动听的音乐,同时看到播放进度显示等MP3播放器常有的功能。注意:要想让这个播放器用于你的网站上,必须把SWF文件和XML以及两首MP3文件上传到你的网站的同一个文件夹中。

源文件下载·]

出处:闪客帝国
责任编辑:一个好孩子

◎进入论坛Flash专栏版块参加讨论

作者文章
实现2004中Media组件多首mp3连放
热门搜索:CSS Fireworks 设计比赛 网页制作 Dreamweaver Studio8 Flash
站点最新 站点最新列表
疯狂的程序员 第五十回
疯狂的程序员 第四十九回
疯狂的程序员 第四十八回
疯狂的程序员 第四十七回
疯狂的程序员 第四十六回
疯狂的程序员 第四十五回
疯狂的程序员 第四十四回
疯狂的程序员 第四十三回
疯狂的程序员 第四十二回
疯狂的程序员 第四十一回
栏目最新 栏目最新列表
火星人的耳机
公司正式宣布创业失败
用corelDEAW 12打造唇膏
二行代码解决全部网页木马
一行代码解决iframe挂马
Photoshop制作星空爆炸效果
CorelDraw 12打造休闲裤
Firework如何画特殊的切角图形
Firework打造韩式风格的手提袋
flash实例:打造佛光效果

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

本文现有 1 条评论 暂时没有人参与评分


oxivit Publish at 2005-7-17 22:46:03
有没有办法显示歌名???
您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
大师之路--Photoshop 完全解析
《超越CSS》新书上市
Don't Make Me Think 第2版
HTML与CSS入门经典(第7版)
《FLASH MX2004网站开发精粹》
《CSS入门经典》
《设计师谈网页设计思维》
作品集 更多内容

经典娃娃&nbsp; Bitrac&nbsp;图标设计 我的视角 后台设计 迷上手作 手绘练习表情与图标 “爱的种子”手绘玻璃杯&nbsp; 黑色系列(三张)