Ir para conteúdo

POWERED BY:

Arquivado

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

peshe

Barra de carregando num MP3 Player

Recommended Posts

Pessoal, tenho um MP3 Player usando Flash e um XML, no frame1 tem um action que carrega o xml e passa para o frame2, nesse segundo frame tem um comboBox, as musicas estão listadas no XML e que passam para o ComboBox, eu queria adicionar um carregador mostrando o quanto da musica está carregada em porcento, por exemplo: eu seleiono a musica chamada Music1.mp3, queria que aparecece um "préloader" (não se se tem esse nome no meu caso) informando o quanto ja carregou da musica em porcento ( o carregador é no mesmo frame pode ser apenas texto).

O código que eu uso para carregar as musicas no segundo frame é:

 

/*  PARTE 1  */_global.VOL = 100;var j, prefixo = lista_xml.firstChild.childNodes;for (j=0; j<prefixo.length; j++) {	musica = String(prefixo[j].childNodes);	lista.push(musica);	index = musica.lastIndexOf(".");	musica = musica.substr(0, index);	listaMenu.addItem(musica); }/*  PARTE 2  */var Ouvidor = new Object();var som:Sound = new Sound();/* PARTE 3 */som.onLoad = function(ok) {   if (ok) {	   var somTitulo = som.id3.TIT2;	   var somAlbum = som.id3.album;	   var somArtista = som.id3.artist;	   titulo.text = somTitulo;	   disco.text = somAlbum;	   artista.text = somArtista;	   tMax = som.duration;	   duracao = arrumaTempo(tMax);	   _root.tempoMax.text = duracao;	   som.start();	   som.setVolume(VOL);	   ID = setInterval(Tempo, 1000);   }};/* PARTE 4 */som.onSoundComplete = function() {   if (qualMusica == lista.length-1) {	   qualMusica = 0;   } else {	   qualMusica++;   }   som.loadSound(lista[qualMusica], true);   listaMenu.selectedIndex = qualMusica;};/* PARTE 5 */Ouvidor.change = function(evento:Object) {   posicao = 0;   qualMusica = evento.target.selectedIndex;   som.stop();   som.loadSound(lista[qualMusica]);};/* PARTE 6 */som.loadSound(lista[qualMusica], true);listaMenu.addEventListener("change", Ouvidor);/* PARTE 7 */function Tempo() {   sPos = som.position;   tmp1 = arrumaTempo(sPos);   _root.tempo.text = tmp1;}function arrumaTempo(t) {   var pos = int(t/1000);   var s = pos%60;   var m = Math.floor(pos/60)%60;   var h = Math.floor(pos/60/60);   if (s<10) s = "0"+s;   if (m<10) m = "0"+m;   if (h<10) h = "0"+h;   return String(h+":"+m+":"+s);}stop();

Tenho que mudar muito?? Mudar o que?

 

Té mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me ajudem!!!! Isso é importante!!!Se eu pegar um proloader simples, aqueles com apenas a porcentagem e por no lugar que preciso mas mudando apenas o "thisgetBytesLoaded()" por "musica.getBytesLoaded()" funciona?? Vou tentar aqui e ver o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, acho que é som.getBytesLoaded(), visto que o objeto som é que carrega o mp3.Eu tinha um script desses aqui, mas não to achando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, eu testei com um script aqui, mas não teve resultado:

 

b_carregados = som.getBytesLoaded();b_totais = som.getBytesTotal();p_carregada = getpercentloaded();porcentagem = b_carregados/b_totais;texto.text = Math.floor((b_carregados/b_totais)*100)+"%";

O dinamic text fica em "0%"

 

vou tentar pegar o action de um préloader e adpatar....

 

Té mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz um preloader dentro de um MC ,esse MC tem 2 layers, na layer da Action eu puis:

b_carregados = som.getBytesLoaded();b_totais = som.getBytesTotal();p_carregada = getpercentloaded();porcentagem = b_carregados/b_totais;texto.text = Math.floor((b_carregados/b_totais)*100)+"%";if (b_carregados == b_totais) {	stop();}
na segunda frame da mesma camada eu puis para voltar ao frame1. numa outra camada eu puis um dinamictext instanciado como texto, msa quando eu testo, aparece escrito: "NaN%"

 

 

Não sei o que fazer, agluém pode me ajudar porfavor??? Preciso disso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me ajudem!!!! Isso não deve ser muito complicado...E não quero fazer outro tópico...Té mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Suponhamos que sue mc que vai ser a barra de carregamento se chame "bar", e som o objeto que carrega o mp3..

 

filesize = som.getBytesTotal();loaded = som.getBytesLoaded();carregado = Math.floor(loaded / filesize * 100);if (loaded != filesize) {_root.bar._xscale = 100 * loaded / filesize; }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, mas onde eu coloco isso? estou cada vez mais confuso^^E tem certeza desse código? Essa condição está meio estranha...Té mais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara... acho q eh um erro parecido com o houve comigo agora ha pouco, mas com videos FLV :P

 

Não seria:

som.getBytesLoaded();

 

e sim:

som.bytesLoaded;

 

o mesmo vale pro bytes total

faz um teste ae :)

 

trace(som.getBytesLoaded());trace(som.bytesLoaded);

falow

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, da um erro quando tento usar o bytesLoaded:**Error** Scene=Scene 1, layer=AS, frame=2:Line 74: There is no property with the name 'bytesLoaded'. trace(som.bytesLoaded);Total ActionScript Errors: 1 Reported Errors: 1Eu tenho que por esse "trace" onde? Após o código todo?Té mais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou postar o código.

 

Pode estar meio diferente, pq não achei o fla e tive que descompilá-lo.

 

O código é o mesmo do tutorial do imasters.

 

Voce coloca o código no frame que vai o carregador.

 

Esse código é para um player com 5 músicas.

 

Abs.

 

 

function music(musica){	var pos;	var _l2;	som_sound.loadSound(musica, true);	_root.onEnterFrame = function ()	{		artista_txt.text = som_sound.id3.artist;		musica_txt.text = som_sound.id3.artist + " - " + som_sound.id3.songname;		album_txt.text = som_sound.id3.album;		som_sound.setVolume(vol);		filesize = som_sound.getBytesTotal();		loaded = som_sound.getBytesLoaded();		carregado = Math.floor(loaded / filesize * 100);		if (loaded != filesize)		{			_root.bar._xscale = 100 * loaded / filesize;		} // end if	};	stop_btn.onRelease = function ()	{		som_sound.stop();	};	pause_btn.onRelease = function ()	{		acao = "pause";		pos = som_sound.position / 1000;		som_sound.stop();	};	play_btn.onRelease = function ()	{		if (acao == "pause")		{			som_sound.start(pos, 1);			acao = "";		}		else		{			som_sound.start();		} // end if	};} // End of the functionvar som_sound = new Sound();var numero = 1;var vol = 100;previous_btn.onRelease = function (){	if (_root.numero != 1)	{		_root.numero = _root.numero - 1;	} // end if	musica = "musica" + numero + ".mp3";	music(musica);};next_btn.onRelease = function (){	if (_root.numero != 5)	{		_root.numero = _root.numero + 1;	} // end if	musica = "musica" + numero + ".mp3";	music(musica);};vol_less_btn.onRelease = function (){	if (vol >= 10)	{		vol = vol - 10;		trace (vol);	} // end if};vol_more_btn.onRelease = function (){	if (vol <= 90)	{		vol = vol + 10;		trace (vol);	} // end if};som_sound.onSoundComplete = function (){	if (_root.numero != 5)	{		_root.numero = _root.numero + 1;	}	else if (_root.numero = 5)	{		_root.numero = _root.numero - 4;	} // end if	musica = "musica" + numero + ".mp3";	music(musica);};

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.