我有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;
}
我无法找到一种方法来定位main.mxml中的标签控件,从AudioPlayer内部开始,并不断更新字节数。
任何帮助,非常感谢...
答案 0 :(得分:0)
在AudioPlayer中创建一个可绑定变量,并在事件处理程序中将其设置为正确的值。
在您的mxml中,将标签的文本绑定到该值。
答案 1 :(得分: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类移到了文档类中。