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

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:Flash動態色彩偏轉控制技巧
      請先看一個flash的色彩動態調整演示:我們在Flash的制作中,往往需要對色彩進行控制,以使我們的動畫影片更多彩多姿。那么,在Flash中到底有多少方法可以來控

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

        mp3多首連放flash源文件下載

      分享:Flash外部導入圖片的長寬限制
      在flash用LoadMovie導入外部圖片居然有最大寬度和最大高度限制,在官方文檔里居然沒有寫明,今天被我碰到了...紀錄一下吧,用LoadMovie導入外部圖片,所支持

      來源:閃客帝國//所屬分類:Flash教程/更新時間:2008-03-05
      相關Flash教程