2010-08-25 2 views
0

Я предполагаю, что у меня нехватка знаний (я только начал изучать Flex вчера, ха-ха!) Является аргументом в пользу моей неспособности выяснить, как правильно сделать эту работу - это может быть даже просто быть проблемой позиционирования кода.Управление потоковым звуком в Flex (новичок)

У меня есть несколько файлов MP3, которые я пытаюсь передать. Прямо сейчас я просто пытаюсь запустить и остановить основной MP3. У меня MP3-игра успешно, но остановить это - проблема, с которой я сталкиваюсь. Вот мой текущий код:

<mx:Script> 
<![CDATA[ 
    import flash.events.Event; 
    import flash.media.*; 
    import flash.media.Sound; 
    import flash.media.SoundLoaderContext; 
    import flash.net.URLRequest; 
    import mx.controls.Button; 

    //set current track & load song 
      var currentTrack:Number = 1; 
    var song:Sound = new Sound(); 
    var req:URLRequest = new URLRequest("../assets/0"+currentTrack+".mp3"); 
    var context:SoundLoaderContext = new SoundLoaderContext(8000, true); 

    //CREATE BUTTONS (being loaded in mx:application on load) 
      private function createControls():void { 
     var playButton:Button = new Button(); 
     playButton.label = "PLAY"; 
     playButton.id = "playButton"; 
     playButton.addEventListener(MouseEvent.CLICK, clickPlayHandler); 
     playerControls.addChild(playButton); 

     var stopButton:Button = new Button(); 
     stopButton.label = "STOP"; 
     stopButton.id="stopButton"; 
     stopButton.addEventListener(MouseEvent.CLICK, clickStopHandler); 
     playerControls.addChild(stopButton); 
    } 

    //HANDLE CLICKS 
    private function clickPlayHandler(event:Event):void { 
     var button:Button = event.currentTarget as Button; 
     song.load(req, context); 
     song.play(); 
    } 
    private function clickStopHandler(event:Event):void { 
     var button:Button = event.currentTarget as Button; 
     //This is not working... 
        song.close(); 
    } 
]]> 

Так что я получил song.play работу, но song.close не останавливает поток, он ничего не делает. Любой ключ, как я мог бы сделать это правильно/что я делаю неправильно?

Спасибо! :)

ответ

3

Вы должны использовать класс SoundChannel, чтобы остановить воспроизведение звука, вы назначаете это так:

 
private var channel:SoundChannel = new SoundChannel(); 

//first assign it to the sound variable 
channel = sound.play(); 

//then you can stop your sound this way 
channel.stop(); 
+0

помадка! Это именно то, чего мне не хватало. Теперь он отлично работает. Благодаря! :) –

Смежные вопросы