Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

bsaleze

Abrir vetor por XML

Recommended Posts

Tenho um player de musica em flash. Mas gostaria de carregar as musicas por banco de dados.

 

O codigo que busca a musica fica no AC

 

// --- vetor com as musicas ----
var musica:Array = new Array();
musica[0] = 'mp3/audio3.mp3'
musica[1] = 'mp3/musica2.mp3'
musica[2] = 'mp3/audio4.mp3'
musica[3] = 'mp3/musica3.mp3'
musica[4] = 'mp3/audio5.mp3'
musica[5] = 'mp3/musica4.mp3'

 

 

Como faria esse vetor viesse de um arquivo XML ?



Codigo do player

var som:Sound = new Sound();
var n:Number = 0;
var v:Number = 100;

//setar um volume padrao
som.setVolume( v );


// --- vetor com as musicas ----
var musica:Array = new Array();
musica[0] = 'mp3/audio3.mp3'
musica[1] = 'mp3/musica2.mp3'
musica[2] = 'mp3/audio4.mp3'
musica[3] = 'mp3/musica3.mp3'
musica[4] = 'mp3/audio5.mp3'
musica[5] = 'mp3/musica4.mp3'

//função para tocar o som ----
function tocar(p){
som.loadSound(musica[p], true);
som.start();
som.setVolume( v );

_root.txt_n.text = (n+1) + ' / ' + musica.length
//mostra a quant de musivas e em qual esta
}

//inicia tocando
tocar( n );

// -------- botao stop -----------
_root.bt_stop.onPress = function(){
som.stop();
}

// ------ botao play -------
_root.bt_play.onPress = function(){
tocar( n );
}

//------ Botao avançar ------
_root.bt_next.onPress = function(){
if(n < musica.length - 1){ //se for menor q a ultima posição do vetor
n++;
}else{
n = 0;
}
tocar( n );

}

// --- Botao Voltar ---
_root.bt_prev.onPress = function(){
if(n > 0){
n--;
}else{
n = musica.length-1;
}
tocar(n);

}

// --- Volume mais ---
_root.bt_mais.onPress = function(){
if(v < 200){
v += 10;
}
som.setVolume( v );
_root.txt_v.text = v;
}

//--- Volume menos ---
_root.bt_menos.onPress = function(){
if(v > 0){
v -= 10;
}
som.setVolume( v );
_root.txt_v.text = v;
}

// ----- função de auto-play -----
som.onSoundComplete = function(){
if(n < musica.length - 1){ //se for menor q a ultima posição do vetor
n++;
}else{
n = 0;
}
tocar( n );

}

// ---- Informaçoes da musica ----
som.onID3 = function(){
_root.txt_musica.text = som.id3.songname;
_root.txt_artista.text = som.id3.artist;
_root.txt_album.text = som.id3.album;
}



//------ movieclip controle (mute)------
_root.mc_controle.stop();
var m:Boolean = true; //indica 'tocando'

_root.mc_controle.onPress = function(){
if( m == true ){
som.setVolume( 0 );
this.gotoAndStop(2);
m = false;
}else{
som.setVolume( v );
this.gotoAndStop(1);
m = true;
}
}


// ---- bt pause -----
var modo:Boolean = true;
_root.mc_pause.stop();

_root.mc_pause.onEnterFrame = function(){
_root.txt_tempo.text = som.position / 1000;
}

_root.mc_pause.onPress = function(){
if(modo == true){
tempo = som.position/1000;
som.stop();
this.gotoAndStop(2);
modo = false;
}else{
som.start(tempo);
this.gotoAndStop(1);
modo = true;
}
}


































Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro passo é carregar o XML:

var meuXML:XML = new XML();
meuXML.ignoreWhite = true;

meuXML.onLoad = function(sucesso:Boolean) {

     if( sucesso ){

total = meuXML.firstChild.firstChild.childNodes.length;//quantidade de músicas...

//Aqui só pegamos a primeira música(use um for(){} para pegar as demais)
trace( "Path do arquivo: "+meuXML.firstChild.firstChild.childNodes[0].attributes.path );
trace( "Nome da musica: "+meuXML.firstChild.firstChild.childNodes[0].firstChild.nodeValue );

 } else {

    trace("Um erro ocorreu ao tentar carregar o arquivo xml !");

}

  }

meuXML.load( "arquivo.xml" );

E o arquivo XML deve estar formatado da seguinte forma:

<?xml version="1.0" encoding="iso-8859-1"?>
<biblioteca>
     <musicas>
    <audio path='mp3/audio1.mp3'>audio1.mp3</audio>
    <audio path='mp3/audio2.mp3'>audio2.mp3</audio>
    <audio path='mp3/audio3.mp3'>audio3.mp3</audio>
     </musicas>
</biblioteca>

Agora basta você associar cada arquivo carregado aos índices do seu Array.

 

Abs,

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.