прикрепить индикатор - PullRequest
       32

прикрепить индикатор

0 голосов
/ 02 февраля 2011

В следующем коде как можно прикрепить индикатор прогресса к звуку и указать, как он прогрессирует

    <mx:Script>
        <![CDATA[

            import flash.media.*;
            import flash.net.NetStream;

            [Embed(source="new1.mp3")]
            [Bindable]
            public var sndCls:Class;

            public var snd:Sound = new sndCls() as Sound;
            public var sndChannel:SoundChannel;
            private var recordingState:String = "idle";

            public function playSound():void {
                sndChannel=snd.play();
            }

            public function stopSound():void {
               sndChannel.stop();
            }

        ]]>
    </mx:Script>


     <mx:Button label="Play" click="playSound()" />
     <mx:ProgressBar x="30" y="36" mode="manual" id="audioprogress" label=""
                     labelPlacement="bottom" width="220" fontSize="10" 
                     fontWeight="normal"/>
 </mx:Application>

1 Ответ

1 голос
/ 02 февраля 2011

Вот самый простой способ, которым я знаю, как:

Сначала создайте две функции в своем разделе скрипта:

public function get bytesLoaded():Number {
    if(sndChannel == null)
        return 0;

    return sndChannel.position;
}

public function get bytesTotal():Number {
    return snd.length;
}

public function clearProgress():void {
    sndChannel = null;
}

Затем измените ваш ProgressBar на режим опроса и установите источник на this

<mx:ProgressBar ... mode="polled" source="{this}" />

У меня отлично работает :)

ПРИМЕЧАНИЕ Функции должны называться bytesLoaded и bytesTotal. Это часть режима опроса ProgressBar. Если вы действительно хотите «ручной» режим, вам нужно создать таймер, который является более сложным, чем этот механизм.

...