2011-03-25 92 views
0

我有一個AS3 MP3播放器。播放器類稱爲Mp3PlayerFrontEnd並控制播放和暫停按鈕。播放列表類稱爲PlaylistBoxItem,並將曲目名稱從XML加載到播放列表中。播放列表的每一行都有一個下載按鈕。當按下下載按鈕時,我希望播放器暫停。我以爲我可以只是_player.pause();從播放列表類,但它不起作用。如何從另一個AS3訪問一個類的功能?

所以我的問題是...如何從播放列表類訪問MP3播放器類中的功能?

我沒有這樣做,我購買了它。我問那個幫助他的人,他迴應了......

「通常情況下,您只需訪問PlaylistListboxItem類中的Mp3Player實例並在下載函數中調用pause()即可。實現這一點的最簡單方法是創建一個持有者類的公共靜態實例,該類可用於從代碼中的任何位置訪問播放器。「

我不知道如何製作一個公共靜態實例或放在哪裏。

我需要做一個新班嗎? 我可以從哪裏導入? 我該如何編寫函數? 謝謝。 Rich

+0

你知道關於actionscript的任何信息/你可以發佈一些代碼嗎? – www0z0k 2011-03-25 16:43:12

+0

創建一個自定義事件類並在單擊該按鈕時分派該事件。如果派遣這個活動的班級是班級中的一個孩子,那麼這個活動就會起泡。如果不是,只需在舞臺上添加一個監聽器即可。以下是一些有關自定義事件類別的鏈接:http://evolve.reintroducing.com/2007/10/23/as3/as3-custom-events/ – 2011-03-25 21:44:31

+0

是的,我知道一些關於Actionscript的信息。這裏是MP3播放器類的開始... public class Mp3PlayerFrontEnd extends MovieClip implements IDisposable \t { \t \t private var _player:Mp3Player; \t \t private var _currentTrack:int = 0; \t \t \t \t 公共\t功能Mp3PlayerFrontEnd() \t \t { \t \t \t repeatButton.addEventListener(MultiStateButtonStateEvent.STATE_CHANGED,evthndlRepeatTrack); \t \t \t playPauseButton.addEventListener(MultiStateButtonStateEvent.STATE_CHANGED,evthndlPlayPause); evthndlPlayPause函數調用_player.pause();我需要PlaylistboxItem(不是孩子)來調用_player.pause(); – 2011-03-29 01:17:55

回答

1

無論什麼階級控制着一切,都需要參考你的玩家。

因此,如果您的播放列表類是您想要在構造函數中使用play/pause/etc的地方,請添加一個參考mp3player的位置。

public class PlayListBoxItem 
{ 
    private var myMp3Player:Mp3Player; 

    // the class constructor 
    public function PlayListboxItem(myMp3Player:Mp3Player) 
    { 
     this.myMp3Player = myMp3Player; 
    } 
} 

現在播放列表類的任何地方,你可以訪問你的MP3播放器與myMp3Player.start().stop(),.whatever公共職能在那裏。

確保啓動和停止是公共職能。

+0

感謝您的回覆,但它沒有奏效。拋出一堆錯誤。我可以通過電子郵件發送整個包嗎?發給我你的電子郵件地址。 [email protected]。謝謝。 – 2011-03-29 01:21:05