2011-06-11 135 views
2

我建立一個非常簡單的MP3播放器在頁面加載執行腳本。我需要的是在頁面加載後立即開始播放加載的音樂。任何想法我應該怎麼做?在ActionScript 3.0

這是我的代碼到目前爲止。我有這個函數叫做musicPlay,我希望讓這個函數在頁面加載時執行。

package { 
    import flash.display.MovieClip; 
    import flash.events.MouseEvent; 
    import flash.media.Sound; 
    import flash.net.URLRequest; 

    public class mp3Player extends MovieClip { 

     public function mp3Player(){ 

      btnPlay.addEventListener(MouseEvent.CLICK, musicPlay); 

      function musicPlay (evt:MouseEvent):void { 
       var myMusic:Sound = new Sound(); 
       var soundFile:URLRequest = new URLRequest('background.mp3'); 
       myMusic.load(soundFile); 
       myMusic.play(); 
      } 

     } 
    } 
} 

回答

2

我需要做的是讓它開始 玩負載音樂,只要 在頁面加載。任何想法如何 我應該這樣做?

頁面的概念在應用程序中並不真正有效,Flex主要用於應用程序。但是,在這種情況下,我懷疑您可以使用Flex的應用程序標籤的applicationComplete方法實現所需的功能。

如果使用通用事件作爲參數傳遞給你的musicPlay功能,它可以在點擊和applicationComplete事件皆響應。

 public function musicPlay (evt:Event):void { 
      var myMusic:Sound = new Sound(); 
      var soundFile:URLRequest = new URLRequest('background.mp3'); 
      myMusic.load(soundFile); 
      myMusic.play(); 
     } 

您給我們提供的語法很奇怪,因爲您通常不會在另一個函數中定義函數。 (是否會編譯?)


更新,因爲海報沒有使用Flex框架,applicationComplete事件將不存在。因此,我可能會考慮將MP3播放器的功能放在一個框架上,並在enterFrame事件上做一些事情。

+0

是主機網頁一些javascript ...我正在寫在實際Flash和沒有的Flex SDK是完全在Flash Professional CS5 ......我知道applicationComplete Flex中,但據我在Flash中開始它(我不是在出口和進口,通過項目相當不錯這兩個程序)我想知道是否有什麼閃光燈CS5 – mrGott 2011-06-11 17:59:52

+0

好吧,你可能不應該把問題標記爲Flex,然後。我爲你重製了它。在Flash中,你可能會做一些事情/一個enterFrame事件。我會更新我的答案。 – JeffryHouser 2011-06-11 18:22:00

+0

感謝隊友的幫助:) – mrGott 2011-06-11 19:04:09

0

那麼因爲代碼在你的電影將盡快開始其加載運行,這將是左右(之前?)的頁面加載時間,你爲什麼不只是調用啓動,而不是監聽鼠標的音樂功能事件?

如果您需要確保該頁面已經開始在音樂出於某種原因(可疑)之前加載,那麼你就需要在監聽onload事件等