0

我有 main.mxml 和一个外部类 com.audio.AudioPlayer.as

AudioPlayer 加载一个音频文件并有一个用于计算 bytesLoaded 和 bytesTotal 的事件。

我想连续推送 bytesLoaded 信息,因为它从 ProgressEvent.PROGRESS 加载到 main.mxml 上的标签中

snd.addEventListener(ProgressEvent.PROGRESS, listenProgress);


    private function listenProgress(event:ProgressEvent):void
    {
        progressID.text = event.bytesLoaded + " / " + event.bytesTotal;
    }

我找不到从 AudioPlayer 内部定位 main.mxml 中的标签控件并不断更新字节数的方法。

任何帮助,非常感谢...

4

2 回答 2

0

在 AudioPlayer 中创建一个可绑定变量,并在事件处理程序中将其设置为正确的值。

在您的 mxml 中,将标签的文本绑定到该值。

于 2009-05-27T19:56:37.720 回答
0

好的,我想出了一个解决方法。在 AudioPlayer.as 我声明:

public var snd:Sound = new Sound();

在 main.mxml 中,我为 snd 添加了事件监听器:

newAudio.snd.addEventListener(Event.COMPLETE, onSoundComplete);
newAudio.snd.addEventListener(ProgressEvent.PROGRESS, listenProgress);

...这样做我可以通过声明更新我的 mxml 控件:

[Bindable] private var progUpdate:String;

<mx:Label text="{progUpdate}" x="254.75" y="46" width="506.5" />

所以基本上我只是将 eventListeners 从 AudioPlayer 类移到了文档类中。

于 2009-05-28T19:05:53.487 回答