2013-03-03 2 views
0

У меня есть сценарий, я разрабатываю аудиоплеер и хочу написать код для строки поиска аудиодорожки.Управление звуковым контролем на вспышке

Любая помощь приветствуется.

+0

Использование компонента FLVplayback в качестве строки поиска построено в – Neil

+0

Спасибо за ответ Нейл, на самом деле мне нужно использовать MP3-плеер. Пожалуйста, предложите. – Altavista

ответ

0

Предполагая, что у вас есть Sound объекта и SoundChannel объекта для воспроизведения Sound объекта, вы можете сделать что-то вроде этого:

package 
{ 
    import flash.display.Sprite; 
    import flash.events.Event; 
    import flash.events.MouseEvent; 
    import flash.geom.Rectangle; 
    import flash.media.Sound; 
    import flash.media.SoundChannel; 
    import flash.net.URLRequest; 

    public class Main extends Sprite 
    { 
     private var _trackBar:Sprite; 
     private var _sound:Sound; 
     private var _soundChannel:SoundChannel; 

     public function Main():void 
     { 
      if (stage) init(); 
      else addEventListener(Event.ADDED_TO_STAGE, init); 
     } 

     private function init(e:Event = null):void 
     { 
      removeEventListener(Event.ADDED_TO_STAGE, init); 

      _trackBar = new Sprite(); 
      _trackBar.graphics.beginFill(0); 
      _trackBar.graphics.drawRect(-10, 0, 20, 40); 
      _trackBar.graphics.endFill(); 
      addChild(_trackBar); 

      graphics.lineStyle(2); 
      graphics.moveTo(_trackBar.x - 10, _trackBar.y); 
      graphics.lineTo(_trackBar.x - 10, _trackBar.y +_trackBar.height); 
      graphics.moveTo(_trackBar.x + 200, _trackBar.y); 
      graphics.lineTo(_trackBar.x + 200, _trackBar.y + _trackBar.height); 

      _sound = new Sound(); 
      _sound.addEventListener(Event.COMPLETE, onLoaded); 
      _sound.load(new URLRequest("[mp3 url goes here].mp3")); 
     } 

     private function onLoaded(e:Event):void 
     { 
      _soundChannel = _sound.play(); 
      stage.addEventListener(Event.ENTER_FRAME, onTick); 
      _trackBar.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown); 
      _trackBar.addEventListener(MouseEvent.MOUSE_UP, onMouseUp); 
     } 

     private function onTick(e:Event):void 
     { 
      if (!_soundChannel) 
      { 
       return; 
      } 
      _trackBar.x = 200 * (_soundChannel.position/_sound.length); 

     } 

     private function onMouseUp(e:MouseEvent):void 
     { 
      _trackBar.stopDrag(); 
      _soundChannel = _sound.play(_sound.length * (_trackBar.x/200)); 

     } 

     private function onMouseDown(e:MouseEvent):void 
     { 
      _soundChannel.stop(); 
      _soundChannel = null; 
      _trackBar.startDrag(false, new Rectangle(0, 0, 200, 0)); 
     } 

    } 

} 

Пожалуйста, обратите внимание: это очень грубое и, безусловно, может быть оптимизировано. Это всего лишь нечто, сложенное вместе, чтобы показать вам, как вы справитесь с такой задачей.