| 導購 | 订阅 | 在线投稿
分享
 
 
 

Flash MX 2004 Media組件實現多首mp3連放

來源:互聯網  2008-05-31 20:23:35  評論

Flash MX 2004 的Media組件確實不錯,大家在使用的時候可能發現MediaDisplay組件只能播放一首mp3,如果要讓他播放完一首歌曲後再接著播放另一首歌曲就不行了。今天就來給大家介紹一下怎樣用MediaController和MediaDisplay組件實現多首mp3的聯播。

播放器界面如圖:

Flash MX 2004 Media組件實現多首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。

7.在原文件目錄下放入兩首mp3,默認名稱爲1.mp3,2.mp3,這裏的名稱和歌曲數目大家可以自己修改XML文件。

到此爲止,一個連放兩首MP3的播放器就可以使用了,打開SWF文件,你將會聽到優美動聽的音樂,同時看到播放進度顯示等MP3播放器常有的功能。注意:要想讓這個播放器用于你的網站上,必須把SWF文件和XML以及兩首MP3文件上傳到你的網站的同一個文件夾中。

源文件下載

 Flash MX 2004 的Media組件確實不錯,大家在使用的時候可能發現MediaDisplay組件只能播放一首mp3,如果要讓他播放完一首歌曲後再接著播放另一首歌曲就不行了。今天就來給大家介紹一下怎樣用MediaController和MediaDisplay組件實現多首mp3的聯播。   播放器界面如圖: [url=/bbs/detail_1774932.html][img]http://image.wangchao.net.cn/it/1324588494256.gif[/img][/url]   思路如下:   歌曲列表用一外部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。   7.在原文件目錄下放入兩首mp3,默認名稱爲1.mp3,2.mp3,這裏的名稱和歌曲數目大家可以自己修改XML文件。   到此爲止,一個連放兩首MP3的播放器就可以使用了,打開SWF文件,你將會聽到優美動聽的音樂,同時看到播放進度顯示等MP3播放器常有的功能。注意:要想讓這個播放器用于你的網站上,必須把SWF文件和XML以及兩首MP3文件上傳到你的網站的同一個文件夾中。 源文件下載
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有