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
5.保存文件,Ctrl+Enter测试影片并输出SWF文件。测试影片时会有错误提示,不用担心,这是由于没有生成XML文档的缘故。
6.创建XML文档:
将该文件保存在与原SWF文件相同的文件夹中,命名为mp3list.xml。
7.在原文件目录下放入两首mp3,默认名称为1.mp3,2.mp3,这里的名称和歌曲数目大家可以自己修改XML文件。
到此为止,一个连放两首MP3的播放器就可以使用了,打开SWF文件,你将会听到优美动听的音乐,同时看到播放进度显示等MP3播放器常有的功能。注意:要想让这个播放器用于你的网站上,必须把SWF文件和XML以及两首MP3文件上传到你的网站的同一个文件夹中。
本文转自:http://www.5uflash.com/flashjiaocheng/Flashzujianxuexi/1305.html
发表评论
-
JSP+FLASH数据传输
2010-04-10 13:59 785回答了个简单的JSP+FLASH问题,竟然被加分了 不好意思 ... -
AS3直接连接SQL驱动下载
2010-04-10 13:59 548flash asSQL组件下载地址: http://macle ... -
AS3直接连接SQL驱动下载
2010-04-10 13:59 781flash asSQL组件下载地址: http://macle ... -
Flash与.NET的通信(一):XMLConnector的应用
2010-04-10 13:59 569一:简介 [font="Times] ... -
Flash与.NET的通信(一):XMLConnector的应用
2010-04-10 13:58 609一:简介 [font="Times] ... -
awflasher的Vplayer 2.1 ( FLV Player )
2010-04-09 14:25 503[1b]功能概述[/1b] 所有播放逻辑均已封装成([1b ... -
awflasher的Vplayer 2.1 ( FLV Player )
2010-04-09 14:24 599[1b]功能概述[/1b] 所有播放逻辑均已封装成([1b ... -
FLV on P2P 下一个流行的video格式
2010-04-09 14:24 668看到 幻灭 处介绍了一款 Youtube Speed Acc ... -
FLV on P2P 下一个流行的video格式
2010-04-09 14:24 674看到 幻灭 处介绍了一款 Youtube Speed Acc ... -
flv在线视频播放
2010-04-09 14:24 782呢感有写网友也想做个在线视频什么的,现在给个例子大家 方法其实 ... -
as3 使用sound类(翻译)-获取文件大小
2010-04-09 12:14 650[1b]问题六[/1b] ... -
as3 使用sound类(翻译)-读取声音信息
2010-04-09 12:14 700[1b]问题七[/1b] 我们现在想获取正在播放的MP3文件的 ... -
as3 使用sound类(翻译)-读取声音信息
2010-04-09 12:14 631[1b]问题七[/1b] 我们现在想获取正在播放的MP3文件的 ... -
as3 使用sound类(翻译)-声音播放结束消息
2010-04-09 12:13 1029[1b]问题八[/1b] 当我们播放音乐以后,想 ... -
as3 使用sound类(翻译)-声音播放结束消息
2010-04-09 12:13 821[1b]问题八[/1b] 当我们播放音乐以后,想 ... -
FLASH CS3中的FLA形式组件制作教程
2010-04-08 11:48 557下面给大家介绍下如何 ... -
Flash cs3组件皮肤
2010-04-08 11:47 549Adobe develop center的新文章Skinnin ... -
FLASH CS3快速打造一个小奶瓶图标
2010-04-08 11:47 670在下面的教程里,我们将从基本形状开始,完全使用FLASH画一个 ... -
flash cs3测试和发布影片问题
2010-04-08 11:47 729问: 按ctrl+Enter后有导出进度条,但就是没导出影片. ... -
Flash CS3(SWF9) 影片格式反编译的工具ActionScript Viewer 6.0
2010-04-08 11:47 814全球首个支持 Flash CS3(SWF9) 影片格式反编译的 ...
相关推荐
flash2004mx组件教程,已编译的 HTML 帮助文件,不只包括flash组件的教程,还有部分AS教程,实用小巧又方便查询.
flashmx2004教程,手把手教你,一步一步操作flashmx2004
Flash MX 2004.zip
FlashMX2004lvse在使用Captivate时必须安装的一个环境如果使用该软件这个东东是必不可少的
Flash MX 2004 绿色软件站专用版
Flash是交互式矢量图和Web动画的标准。网页设计者使用Flash能创建漂亮的、可改变尺寸的、以及极其...Flash MX 2004中的编程特性有很大突破,令人有耳目一新的感觉,Developer甚至可以掉去Tool Bar绘图工具和Timeline
Flash MX 2004 入门与进阶教程
一个使用flash MX 2004专业版制作的课件的模板,包含有按钮、选择题、连线题等元素。附带源码,可直接修改
ActionScript 2.0教程 Flash MX 2004 编程(AS2.0)教程
Flash MX 2004 官方简体教程(PDF)
Macromedia Flash MX 2004 V7.01 简体
如果需要学习flasf的请看Flash MX 2004教程.rar
Flash MX 2004 官方简体教程,相当经典。
Flashmx2004-52z.com.zip这个是做动画的软件,免费的,永久使用,正版
Macromedia Flash MX 2004 简单快速的网站开发Macromedia Flash MX 2004 简单快速的网站开发
FLASH MX2004 动画特效素材
Macromedia Flash MX 2004 V7.01 简体中文版
利用Flash MX Professional 2004构建功能丰富的Internet应用程序 熟悉Flash MX 2004界面 用ActionScript 2.0创建编程结构 使用内置可视的和非可视的Flash Player对象 创建自定义类和组件 使用Screen编程功能构建应用...
内容围绕编程概念、ActionScript 2.0语法、使用组件快速创建应用程序、Flash与服务器连接、提取及更新数据库等知识,配合实战范例演示,目的是让既有Flash MX使用者和其他对Flash有兴趣的传统编程人员,以最简单直接...
flash mx 2004游戏制作完全攻略.rar