返回首頁
當前位置: 主頁 > 視頻動畫 > Flash教程 >

巧用Flash的Media組件實現多首mp3連播

時間:2014-10-02 22:48來源:電腦教程學習網 www.aedwey.tw 編輯:admin

Flash 的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文件上傳到你的網站的同一個文件夾中。
 

------分隔線----------------------------
標簽(Tag):flash flash實例教程 flash源代碼 flash基礎教程 flash技巧
------分隔線----------------------------
推薦內容
猜你感興趣
26选5中奖通告