【问题标题】:How can I access a function in one class from another AS3?如何从另一个 AS3 访问一个类中的函数?
【发布时间】:2011-03-25 02:37:35
【问题描述】:

我有一个 AS3 MP3 播放器。播放器类称为 Mp3PlayerFrontEnd 并控制播放和暂停按钮。播放列表类称为 PlaylistBoxItem 并将曲目名称从 XML 加载到播放列表中。播放列表的每一行都有一个下载按钮。按下下载按钮时,我希望播放器暂停。我以为我可以 _player.pause();来自播放列表类,但它不起作用。

所以我的问题是……如何从播放列表类访问 MP3 播放器类中的函数?

这个不是我做的,是我买的。我向制作它的人寻求帮助,他回复了......

“通常你只需要访问 PlaylistListboxItem 类中的 Mp3Player 实例并在下载函数中调用 pause() 。我想实现这一点的最简单方法是创建一个持有者类的公共静态实例可用于从代码中的任何位置访问播放器。”

我不知道如何制作公共静态实例或将它放在哪里。

我需要开设一个新课程吗? 我将从哪里导入它? 我将如何编写函数? 谢谢。 丰富

【问题讨论】:

  • 你对actionscript有什么了解/你能发布一些代码吗?
  • 创建一个自定义事件类并在单击按钮时调度该事件。如果调度事件的类是监听类的子类,它就会冒泡。如果不是,只需在舞台上添加一个侦听器即可。以下是有关自定义事件类的一些信息的链接:evolve.reintroducing.com/2007/10/23/as3/as3-custom-events
  • 是的,我对 Actionscript 有所了解。这是 MP3 播放器类的开始... public class Mp3PlayerFrontEnd extends MovieClip implements IDisposable { private var _player:Mp3Player;私有变量 _currentTrack:int = 0;公共功能 Mp3PlayerFrontEnd() { repeatButton.addEventListener(MultiStateButtonStateEvent.STATE_CHANGED, evthndlRepeatTrack); playPauseButton.addEventListener(MultiStateButtonStateEvent.STATE_CHANGED,evthndlPlayPause); evthndlPlayPause 函数调用 _player.pause();我需要 PlaylistboxItem(不是孩子)来调用 _player.pause();

标签: actionscript-3


【解决方案1】:

任何控制一切的类都需要引用你的播放器。

因此,如果您的播放列表类是您想要在构造函数中使用播放/暂停/等的地方,请添加一个位置以引用 mp3player。

public class PlayListBoxItem
{
    private var myMp3Player:Mp3Player;

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

现在在播放列表类中的任何位置,您都可以使用 myMp3Player.start() .stop(), .whatever public 函数访问您的 mp3 播放器。

确保 start 和 stop 是公共函数。

【讨论】:

  • 感谢您的回复,但没有成功。抛出一堆错误。我可以通过电子邮件将整个包裹发送给您吗?发给我你的电子邮件地址。 richgags@aol.com。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
  • 2020-03-05
  • 1970-01-01
相关资源
最近更新 更多