0

main.mxml と外部クラス com.audio.AudioPlayer.as があります

AudioPlayer はオーディオ ファイルをロードし、bytesLoaded と bytesTotal をカウントするためのイベントを持っています。

ProgressEvent.PROGRESS から main.mxml のラベルにロードされているため、bytesLoaded 情報を継続的にプッシュしたいと思います。

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 に答える