mais se eu faço isso do meu jeito, depois ele não roda randomizado as musicas se a pessoa inicia o play ;/
o que acontece é que toda hora que eu abro uma pagina diferente no site sendo que isso fica na index e a index é fixa, ele automaticamente se inicia tb. do começo, como se fosse apertado o play a intencao era poder apertar stop e fazer ele roda qdo o usuario ativasse apenas... qdo vc entrasse em outra pagina ele continuasse desativado.. mais num sei o que acontece muda de pagina ele se reativa o play sozinho.
// Criamos uma variavel do tipo XML var oXML:XML = new XML(); // Ignoramos os espaços em branco oXML.ignoreWhite = true; // Variáveis com os dados que serão utilizados // Quantidade de itens var quant:Number; // Contem as urls das musicas (prefira colocar o caminho completo, por exemplo http://www.seusite.com/musica.mp3, para que não haja problemas com navegadores diferentes) var urls:Array = new Array(); // Contem os nomes das musicas var nomes:Array = new Array(); // Nomes dos artistas var artistas:Array = new Array(); // Informações adicionais var infos:Array = new Array(); // Quanto o arquivo for carregado oXML.onLoad = function():Void{ // Valor de quant quant = this.firstChild.childNodes.length; // Laço for iniciado com i =0 até i=quant for(var i:Number=0; i<quant; i++){ //preenchemos as variaveis com seus dados correspondentes. //para compreender a logica usado de uma passada no artigo sobre XML urls[i] = this.firstChild.childNodes[i].childNodes[0].childNodes.toString(); nomes[i] = this.firstChild.childNodes[i].childNodes[1].childNodes.toString(); artistas[i] = this.firstChild.childNodes[i].childNodes[2].childNodes.toString(); infos[i] = this.firstChild.childNodes[i].childNodes[3].childNodes.toString(); } //chamamos uma função nomeada trocar_musica com parametro m trocar_musica(m); } //carregamos o arquivo .XML oXML.load("player.xml"); //criamos uma variavel numerica que armazena o numero da musica tocando var m:Number = 0; //criamos uma variavel do tipo Sound nomeada som_sound var som_sound:Sound = new Sound(); //criamos uma função chamada trocar_musica que irá, como o nome já diz, trocar as musicas. //o parametro n é o numero da musica a ser tocado function trocar_musica(n:Number){ //pára o som tocado som_sound.stop(); //carregamos o arquivo o arquivo numero n do XML em modo sem Streaming som_sound.loadSound(urls[n],false); //preenche o campo de texto com as informações correspondentes status_txt.text="Musica: " + nomes[n]; status_txt.text+="\nArtista: " + artistas[n]; //Desativado o texto de informações, para ativar apenas tirar as barras //status_txt.text+="\nInformações: " + infos[n]; //quando o som for carregado completamente som_sound.onLoad=function(){ //inicia o som som_sound.start(0,0); //torna o botão play_btn desativado play_btn.enabled=false; } } //definimos uma variavel nomeada pausar var pausar:Number = 0; //quando o botão play_btn for pressionado play_btn.onPress=function():Void{ //inicia o som no instante definido pela variavel pausar som_sound.start(_root.pausar,0); //desabilita o botão play_btn play_btn.enabled=false; //reabilita o botão pause_btn pause_btn.enabled=true; } //quando o botão stop_btn for pressionado stop_btn.onPress=function():Void{ //para o som som_sound.stop(); //reabilita o botão play_btn play_btn.enabled=true; //define o valor da variavel pausar para 0 pausar = 0; //desabilita o botão pause_btn pause_btn.enabled=false; } //quando o botão pause_btn for pressionado pause_btn.onPress=function():Void{ //reabilita o botão play_btn play_btn.enabled=true; //definimos o valor da variavel pausar (o /1000 converte milisegundos em segundos) pausar = som_sound.position/1000; //paramos o som som_sound.stop(); } //quando o botão sforw_btn for pressionado sforw_btn.onPress=function(){ //criamos um intervalo nomeado intID que executa a função intId = setInterval(function(){ //verificamos se há tempo suficiente no som para avançar //caso sim if(som_sound.position+1000<=som_sound.duration){ //criamos uma variavel numerica que armazena a posição (em segundos) em que o som está, e soma 1 segundo var pos:Number = ((som_sound.position)/1000)+1; //pára o som som_sound.stop(); //recomeça o som no instante armazenado na variavel pos som_sound.start(pos, 0); } //caso não else{ //limpamos o intervalo clearInterval(intId); } //o intervalo definido é de 50milisegundos },50); } //quando o botão sforw_btn for solto, ou o mouse sair da area, ou se o mouse for pressionado e levado para fora sforw_btn.onDragOut = sforw_btn.onRelease = sforw_btn.onRollOut = function(){ //limpamos o intervalo clearInterval(intId); } //as linhas a seguir são semelhantes, mas ao invés de somar 1 segundo. Subtraimos 1 segundo. sback_btn.onPress=function(){ intId = setInterval(function(){ if(som_sound.position-1000>=0){ var pos:Number = ((som_sound.position)/1000)-1; som_sound.stop(); som_sound.start(pos, 0); } else{ clearInterval(intId); } },50); } sback_btn.onDragOut = sforw_btn.onRelease = sforw_btn.onRollOut = function(){ clearInterval(intId); } //criamos uma variavel do tipo booleana chamada "loop" que armazenará o estado do loop var loop:Boolean = false; //alteramos o texto "loop_txt" para o estado desligado loop_txt.text = "Loop OFF" //quando o botão loop_btn for pressionado loop_btn.onPress=function(){ //se a variavel loop for verdadeita if(loop){ //torna a variavel loop falsa loop = false; //altera o campo de texto para o estado desligado loop_txt.text = "Loop OFF" } //caso o loop seja falso else{ //torna a variavel loop verdadeira loop = true; //altera o campo de texto para o estado ligado loop_txt.text = "Loop ON" } } //quando o som terminar de ser tocado som_sound.onSoundComplete=function(){ //se a variavel loop for verdadeira if(loop){ //inicia o som novamente som_sound.start(0,0); //define a variavel pausar para 0 (para não haver problema algum) pausar = 0; } //caso contrário else{ //pára o som som_sound.stop(); //se o m (musica atual) for menor que a quantidade total de musica if(m<quant-1){ //incrementa a variavel m em uma unidade (equivalente a m = m+1) m++; //troca a musica para o novo m trocar_musica(m); } //caso não else{ //torna o m=0 m=0; //troca a nusica para o novo m, reiniciando as musicas trocar_musica(m); } } } //quando o botão next_btn for pressionado next_btn.onPress=function(){ //se m (musica atual) for menor que a quantidade de musicas if(m<quant-1){ //incrementa em uma unidade a variavel m (m = m+1) m++; //troca a musica para o novo m trocar_musica(m); } } //quando o botão prev_btn for pressionado prev_btn.onPress=function(){ //se m (musica atual) for maior que 0 if(m>0){ //decrementa em uma unidade a variavel m (m = m-1) m--; //troca a musica para o novo m trocar_musica(m); } }
- Miguceamma likes this