jnejunior 1 Denunciar post Postado Abril 24, 2010 tenho um player em flash lógico... e queria que este tivesse um botão com duas funções, assim: o botão play e pause fosse um só, enquanto a música tiver tocando ele fica no formato de pausar, e quando estiver pausado fica no formato de play... acho que deu pra sacar... tambem precisava incrementar a parte do controle do volume, queria que quando eu clicasse em uma area do volume o mesmo respondesse, tipo do player do windows (WMP)... será que alguem pode me ajudar... import flash.display.Sprite; import flash.net.URLRequest; import flash.media.Sound; import flash.media.SoundChannel; import flash.media.SoundMixer; // Adicionando nossas variaveis. var getMusica:URLRequest; var music:Sound = new Sound(); var soundChannel:SoundChannel; var currentSound:Sound = music; var pos:Number; var Cindex:Number = 0; var somPlay:Boolean = false; var xml:XML; var somlist:XMLList; var somVol:SoundTransform = new SoundTransform(); var ratio_volume:Number; var SlideB:Rectangle = SlideM.getBounds(SlideM); var xPos:Number = SlideB.x; var yPos:Number = SlideB.y; var widthPos:Number = SlideB.width-SlideM.slide_mc.width; var heightPos:Number = 0; var bounds:Rectangle = new Rectangle (xPos, yPos, widthPos, heightPos); var loadIMG:Loader = new Loader(); var loadIMGR:Loader = new Loader(); // Carregando XML. var loader:URLLoader = new URLLoader(); music.addEventListener(ProgressEvent.PROGRESS,Loadprogress); loader.addEventListener(Event.COMPLETE, wLoader); var URLRe:URLRequest = new URLRequest("musicas.xml"); loader.load(URLRe); function Loadprogress(e:ProgressEvent):void { var loadedPct:uint = Math.round(100 * (e.bytesLoaded / e.bytesTotal)); load_txt.text = loadedPct + "% concluído"; } function wLoader (e:Event) { xml = new XML (e.target.data); somlist = xml.som; getMusica = new URLRequest (somlist [0].url); music.load (getMusica); soundChannel = music.play(); musica_txt.text = somlist [0].musica; } // Eventos de próximo, anterior, pause, play e puxar os textos do XML. prox_btn.addEventListener(MouseEvent.CLICK, nextsom); ant_btn.addEventListener(MouseEvent.CLICK, prevsom); pause_btn.addEventListener(MouseEvent.CLICK, pausesom); function nextsom (e:Event) { if (Cindex < (somlist.length() - 1)) { Cindex++; } else { Cindex = 0; } var nextReq:URLRequest = new URLRequest (somlist[Cindex].url); var music:Sound = new Sound(nextReq); music.addEventListener(ProgressEvent.PROGRESS, Loadprogress); soundChannel.stop(); musica_txt.text = somlist[Cindex].musica; soundChannel = music.play(); somPlay = true; currentSound = music; soundChannel.addEventListener(Event.SOUND_COMPLETE, nextsom); } function prevsom (e:Event){ if (Cindex > 0){ Cindex--; } else { Cindex = somlist.length() - 1; } var prevReq:URLRequest = new URLRequest (somlist[Cindex].url); var muscic:Sound = new Sound(prevReq); music.addEventListener(ProgressEvent.PROGRESS,Loadprogress); soundChannel.stop(); musica_txt.text = somlist [Cindex].musica; soundChannel = music.play(); somPlay = true; currentSound = music; soundChannel.addEventListener(Event.SOUND_COMPLETE, nextsom); } function pausesom(e:Event){ pos = soundChannel.position; soundChannel.stop(); somPlay = false; play_btn.addEventListener(MouseEvent.CLICK, playsom); } function playsom(e:Event){ if (somPlay == false) { soundChannel = currentSound.play(pos); soundChannel.addEventListener(Event.SOUND_COMPLETE, nextsom); somPlay = true; play_btn.removeEventListener(MouseEvent.CLICK, playsom); } } // SoundMixer.computeSpectrum. var ba:ByteArray = new ByteArray(); // Cria o MC e adiciona ao palco. var gr:Sprite = new Sprite(); var gr2:Sprite = new Sprite(); var blur:BlurFilter = new BlurFilter(); var filB:Array = new Array(blur); gr.y = 90; gr.x = 150; gr.filters = filB; blur.blurX = 5; blur.blurY = 5; blur.quality = 1; addChild(gr); var Mtime:Timer = new Timer (65); Mtime.addEventListener(TimerEvent.TIMER, TCom); Mtime.start(); function TCom(e:TimerEvent) { SoundMixer.computeSpectrum(ba, true); var i:int; gr.graphics.clear(); // tamanho e cor da linha gr.graphics.lineStyle(0, 0x333333); // cor das barras gr.graphics.beginFill(0xa6dd22); // tamanho do width (largura) das barras var w:uint = 3; for (i=1; i<135; i+=w) { var t:Number = ba.readFloat(); var n:Number = (t * 50); gr.graphics.drawRect(i, 0, w, -n); } } // Slide e Volume SlideM.slide_mc.x = widthPos; SlideM.mouseEnabled = false; SlideM.slide_mc.buttonMode = true; SlideM.slide_mc.addEventListener(MouseEvent.MOUSE_DOWN,dragSlide); stage.addEventListener(MouseEvent.MOUSE_UP,stopSlide); function dragSlide(e:MouseEvent){ e.target.startDrag(false,bounds); addEventListener(Event.ENTER_FRAME, Volume); SlideM.slide_mc.alpha = 0.8; } function stopSlide(e:MouseEvent){ SlideM.slide_mc.stopDrag(); SlideM.slide_mc.alpha = 1; } function Volume(e:Event){ ratio_volume = SlideM.slide_mc.x/widthPos; somVol.volume = ratio_volume; soundChannel.soundTransform = somVol; } este é o code da raiz do meu fla... Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Abril 25, 2010 Tutorial do Thiago Bueno, legal esse player, usa um spectrum. Faltou você postar a última linha do código na function Volume antes do fechamento da chave: vol.text = "volume "+Math.round((SliderM.slider_mc.x)/(bounds.right-bound.left-1)*100+"%"; Fica legal informar as tentativas que já fez para obter o que deseja. Abs Compartilhar este post Link para o post Compartilhar em outros sites
jnejunior 1 Denunciar post Postado Abril 25, 2010 esta ultima linha eu tirei mesmo, pois não usaria... já fiz tantas tentativas, tutoriais, sources, video aulas, etc, este é o que chegou mais perto do que eu preciso... já fiz algumas modificações... mas preciso disto que escrevi, um botão que seja play e pause.... se puder ajudar serei grato... abs Compartilhar este post Link para o post Compartilhar em outros sites