Ir para conteúdo

POWERED BY:

Arquivado

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

Paulo Faustini Jr

[Resolvido] XML + Flash

Recommended Posts

Boa tarde, estou a fazer um flash para o site da minha emissora de rádio e ele puxa informações de um arquivo xml, só que não tenho muito domínio na linguagem e pelos tutoriais e pelo o que entendi, eu fiz isso:

 

*.xml

<?xml version="1.0" encoding="ISO-8859-1" ?> 
- <Playlist CurrentTime="18/02/2009 11:00:03">
- <OnAir>
- <Break>
  <Id>Musical</Id> 
  <Op>Marcio</Op> 
  <SchedTime>18/02/2009 11:00:00</SchedTime> 
  <StartedTime>18/02/2009 11:00:03</StartedTime> 
  <Type>M</Type> 
  <InsCount>7</InsCount> 
  <MusicCount>3</MusicCount> 
  <Dur>00:10:43</Dur> 
  <SchedEnd>18/02/2009 11:11:14</SchedEnd> 
  <ShedPause /> 
  </Break>
- <CurIns>
  <StartedTime>18/02/2009 11:00:03</StartedTime> 
  <Id>1M8H2D</Id> 
  <Name>RÉGIS DANESE - FAZ UM MILAGRE EM MIM</Name> 
  <Type>1</Type> 
  <Folder>Sucesso</Folder> 
  <Filename>RÉGIS DANESE - FAZ UM MILAGRE EM MIM.MP3</Filename> 
  <Dur>3:35.5</Dur> 
  <Intro>4.4</Intro> 
  <Bitrate>320</Bitrate> 
  </CurIns>
- <CurMusic>
  <StartedTime>18/02/2009 11:00:03</StartedTime> 
  <Id>1M8H2D</Id> 
  <Title>Faz um milagre em min</Title> 
  <Subtitle /> 
  <Artist>Regis Danese</Artist> 
  <Album>Compromisso</Album> 
  <Track>1</Track> 
  <Publisher /> 
  <Year>0</Year> 
  <Comment /> 
  <Language /> 
  <Genre>Other</Genre> 
  <RingTone /> 
  <URLCover /> 
  </CurMusic>
  </OnAir>
+ <Next>
- <NextIns>
  <Ins SchedTime="18/02/2009 11:03:25" Id="VI6VF" Type="3" Name="BOM DIA 99 - 05 - VH" Folder="Bom Dia 99" Filename="BOM DIA 99 - 05 - VH.MP3" Dur="4.5" Intro="" Bitrate="128" /> 
  <Ins SchedTime="18/02/2009 11:03:28" Id="4L6HAE" Type="1" Name="MAURICIO & SANTIAGO - DOCE ILUSÃO" Folder="Sucesso" Filename="MAURICIO & SANTIAGO - DOCE ILUSÃO.MP3" Dur="4:03.9" Intro="15.1" Bitrate="320" /> 
  <Ins SchedTime="18/02/2009 11:07:26" Id="V4YT2" Type="3" Name="SINAL HORA CERTA DIA!!s" Folder="Sinal HC dia" Filename="SINAL HORA CERTA DIA!!s.MP3" Dur="2.4" Intro="1.0" Bitrate="128" /> 
  <Ins SchedTime="18/02/2009 11:07:28" Id="D3D5PZ" Type="1" Name="D'BLACK & NEGRA LI - UM MINUTO" Folder="Sucesso" Filename="D'BLACK & NEGRA LI - UM MINUTO.MP3" Dur="3:16.4" Intro="3.8" Bitrate="320" /> 
  <Ins SchedTime="18/02/2009 11:10:41" Id="" Type="3" Name="Track-003" Folder="Trilhas Locutor" Filename="Track-003.MP3" Dur="28.4" Intro="" Bitrate="320" /> 
  </NextIns>
- <NextMusic>
- <Music SchedTime="18/02/2009 11:03:28" Id="4L6HAE" Title="MAURICIO & SANTIAGO - DOCE ILUSÃO" Dur="4:03.9" Intro="15.1">
  <Title>DOCE ILUSÃO</Title> 
  <Subtitle /> 
  <Artist>MAURICIO & SANTIAGO</Artist> 
  <Album /> 
  <Track /> 
  <Publisher /> 
  <Year>2009</Year> 
  <Comment /> 
  <Language /> 
  <Genre>Blues</Genre> 
  <RingTone /> 
  <URLCover /> 
  </Music>
- <Music SchedTime="18/02/2009 11:07:28" Id="D3D5PZ" Title="D'BLACK & NEGRA LI - UM MINUTO" Dur="3:16.4" Intro="3.8">
  <Title>UM MINUTO</Title> 
  <Subtitle /> 
  <Artist>D'BLACK & NEGRA LI</Artist> 
  <Album /> 
  <Track /> 
  <Publisher /> 
  <Year /> 
  <Comment /> 
  <Language /> 
  <Genre>Blues</Genre> 
  <RingTone /> 
  <URLCover /> 
  </Music>
- <Music SchedTime="18/02/2009 11:16:01" Id="734ILG" Title="PEDRO & THIAGO - ENTRE UM GOLE E OUTRO" Dur="2:47.6" Intro="15.5">
  <Title>ENTRE UM GOLE E OUTRO</Title> 
  <Subtitle /> 
  <Artist>PEDRO & THIAGO</Artist> 
  <Album /> 
  <Track /> 
  <Publisher /> 
  <Year /> 
  <Comment /> 
  <Language /> 
  <Genre>Blues</Genre> 
  <RingTone /> 
  <URLCover /> 
  </Music>
- <Music SchedTime="18/02/2009 11:18:43" Id="RZD2D8" Title="JORGE & MATHEUS - TEM NADA HAVER" Dur="3:05.3" Intro="13.1">
  <Title>TEM NADA HAVER</Title> 
  <Subtitle /> 
  <Artist>JORGE & MATHEUS</Artist> 
  <Album /> 
  <Track /> 
  <Publisher /> 
  <Year>2008</Year> 
  <Comment /> 
  <Language /> 
  <Genre>Blues</Genre> 
  <RingTone /> 
  <URLCover /> 
  </Music>
- <Music SchedTime="18/02/2009 11:21:47" Id="BXDB54" Title="LUIZ CLÁUDIO & GIULIANO - SEU JARDINEIRO" Dur="3:07.7" Intro="5.8">
  <Title>SEU JARDINEIRO</Title> 
  <Subtitle /> 
  <Artist>LUIZ CLÁUDIO & GIULIANO</Artist> 
  <Album /> 
  <Track /> 
  <Publisher /> 
  <Year /> 
  <Comment /> 
  <Language /> 
  <Genre>Blues</Genre> 
  <RingTone /> 
  <URLCover /> 
  </Music>
  </NextMusic>
  </Next>
  </Playlist>

codigo no flash

function xml_load()
{
	var dados = new XML();
	System.useCodepage = true;
	dados.ignoreWhite = true;
	dados.load("/aovivo/aovivo.xml");
	dados.onLoad = loadSlideShow;
}
function loadSlideShow(success)
{
	if (success == true) 
	{
		trace("ok");
		xmlNode = this.firstChild;
		total = xmlNode.childNodes.length;
		currentSlideNode = xmlNode.firstChild;
		if (curentSlideNode.childNodes[0].childNodes[1].childNodes[3] <> "1") 
		{
			interprete.text = "99 FM";
			musica.text = "A MAIS OUVIDA!";
			return;
		}
		interprete.text = currentSlideNode.childNodes[0].childNodes[2].childNodes[4];
		musica.text = currentSlideNode.childNodes[0].childNodes[2].childNodes[2];
	}
}
getURL("FSCommand:allowscale", "false");
Stage.scaleMode = "noScale";
System.useCodepage = true;
setInterval(xml_load, 20000);
xml_load();

espero que alguém possa me ajudar...

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O erro está no flash...

bom, consegui fazer com que aparecesse as informações da música, agora estou querendo fazer uma comparação no xml... vou postar o código e logo abaixo de cada linha explicar o que deveria acontecer...

 

function xml_load()
{
	System.useCodepage = true;
				var dados = new XML();
	dados.ignoreWhite = true;
	dados.load("/aovivo/aovivo.xml");
	dados.onLoad = function($sucesso){
			if($sucesso){
				trace("ok");
		total = dados.childNodes.length;
		if (dados.firstChild.childNodes[0].childNodes[1].childNodes[3].nodeValue == "1") 
								// aqui, ele verifica se o valor do nó Type é igual a 1
				{
						interprete.text = dados.firstChild.childNodes[0].childNodes[2].childNodes[4].firstChild.nodeValue;
			musica.text = dados.firstChild.childNodes[0].childNodes[2].childNodes[2].firstChild.nodeValue;
						return;
												// se o valor do nó Type for 1, ele retorna o valor do nó Artist para interprete e o valor do nó Title para musica
				}
		interprete.text = "99 FM";
			musica.text = "A MAIS OUVIDA!";
								//se o valor do nó Type for diferente de 1, ele retorna "99 FM" para interprete e "A MAIS OUVIDA!" para musica				
			}
	}
	getURL("FSCommand:allowscale", "false");
	Stage.scaleMode = "noScale";
	System.useCodepage = true;
}
setInterval(xml_load, 20000);
xml_load();

deixando o codígo dessa forma, aparece undefined nos campos musica e interprete do flash, parece que ele não consegue resolver a comparação.

 

já no código abaixo, aparece corretamente as informações da música, só que, ao rodar publicidade, o valor do nó Type muda para 0, 2 ou 3 e as informações nos nós Artist e Title ficam em branco no XML, aparecendo undefined no flash. Por isso estou tentando fazer essa comparação no nó Type, pq, quando for publicidade, o flash apresentará frases montadas e não undefined.

 

utilizo esse pra quebrar galho

function xml_load()
{
	System.useCodepage = true;
	var dados = new XML();
	dados.ignoreWhite = true;
	dados.load("/aovivo/aovivo.xml");
	dados.onLoad = function($sucesso){
			if($sucesso){
				trace("ok");
		total = dados.childNodes.length;
				interprete.text = dados.firstChild.childNodes[0].childNodes[2].childNodes[4].firstChild.nodeValue;
								//interprete recebe o valor do nó Artist
		musica.text = dados.firstChild.childNodes[0].childNodes[2].childNodes[2].firstChild.nodeValue;
								//musica recebe o valor do nó Title
		}
	}
	getURL("FSCommand:allowscale", "false");
	Stage.scaleMode = "noScale";
	System.useCodepage = true;
}
setInterval(xml_load, 20000);
xml_load();

Compartilhar este post


Link para o post
Compartilhar em outros sites

De acordo com o primeiro código do seu último post, tente dar um trace na declaração da condição (verificar se o valor do nó Type é igual a 1);

Pois acredito que deveria ser assim:

 

if (dados.firstChild.childNodes[0].childNodes[1].childNodes[3].firstChild.nodeValue == "1") {

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Public, deu certo, agora, como que faço pra reconhecer os acentos que estão no xml? e no codigo, a posição do setInterval (usei para fazer a atualiazação no flash em a cada 20 segundos) está correto?

 

Grato novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso aí, vai por partes:

Tenta alterar a codificação do seu XML para:

<?xml version="1.0" encoding="utf-8"?>

Ou no Flash, teste desabilitando o Codepage.

 

E quanto ao intervalo a posição está Ok.

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Public! Meu nome é Marcelo e estava procurando uma forma de colocar as informações de músicas no site de minha rádio e acabei encontrando esse post e me ajudou demais.

No meu caso, está funcionando tudo, porém as informações não estão sendo atualizadas, só depois de um F5 ou sair e entrar de novo na página. O que pode ta acontecendo? Valeu...

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.