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



Postagens
Não informado
