如何从另一个AS3访问一个类的功能?

问题描述:

我有一个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

无论什么阶级控制着一切,都需要参考你的玩家。

因此,如果您的播放列表类是您想要在构造函数中使用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