Ir para conteúdo

Arquivado

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

Claudio Neto

[Resolvido] Animação não troca os arquivos

Recommended Posts

Boa tarde.

 

Tenho um site com uma animação para exibir algumas imagens, que na verdade são páginas de um jornal e estão em gif.

No site posso escolher a edição que desejo ler e no flash serão exibidas as páginas referentes a essa edição.

Para conferir, clique aqui.

 

Problema:

As edições não trocam conforme eu seleciono.

Acredito que esteja havendo alguma demora para carregar os arquivos, pois se deixar a página aberta um bom tempo, depois escolher outra edição, ai carrega, mas se for trocando não funciona, e estando aqui em minha própria máquina funciona normalmente.

 

O flash conta com dois recursos, um arquivo texto onde estou passando através desse arquivo uma variável com o nome do arquivo xml que ele deve ler e o outro é o próprio xml, que tenho um para cada edição do jornal.

Então funciona assim, eu seleciono na caixa o número da edição que quero visualizar, o asp edita o arquivo texto e a animação lê esse arquivo, vê qual xml deve usar e deveria exibir as imagens que o xml indica. Mas isso não acontece. Independente de qual edição eu selecionar, sempre fica na mesma.

 

Alguém tem alguma idéia do que posso fazer?

 

O código html está assim:

<object classid="clsid:D27CDB6E-AE6D-11CF-96B8-444553540000" id="obj1" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" border="0" width="720" height="1050">
			<param name="movie" value="exibe_jornal.swf"/>
			<param name="quality" value="High"/>
			<param name="scale" value="NoBorder"/>
			<embed src="exibe_jornal.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" name="obj1" width="720" height="1050" quality="High" scale="NoBorder"/>
		</object>

E a estrutura do xml:

<?xml version="1.0" encoding="ISO-8859-1"?>

<ID34>

<Linksnum>4</Linksnum>

<banner>
<imagem>bellnews/jornal_01_-1.gif</imagem>
</banner>

<banner>
<imagem>bellnews/jornal_01_-2.gif</imagem>
</banner>

<banner>
<imagem>bellnews/jornal_01_-3.gif</imagem>
</banner>

<banner>
<imagem>bellnews/jornal_01_-4.gif</imagem>
</banner>

</ID34>

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acredito que o problema seja o cache do arquivo de texto. Experimente carregar o arquivo com uma variável aleatória no final como neste exemplo em AS3:

var idJornal:URLLoader = new URLLoader(new URLRequest("arquivoTxt.txt?nocache="+Math.round(Math.random()*1000)));

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que pode ta acontecendo tbm é demora ao ler o XML

As vezes isso acontece.

 

Você pode colocar algum loader indicando que está carregando a informação...

 

Já que em seu computador vai rápido e na internet não, pode ser isso que está ocorrendo.

 

Alem do que o bruno falou... fazer essa pequena gambiarra para ele não cachear o XML

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, tentarei colocar o loader, mas não entendi onde devo colocar o linha que o Bruno passou.

 

Meu código está assim:


System.useCodepage = true;

carrega = new LoadVars();
carrega.onLoad = function(sucess) {
	if (sucess) {
		caixa.text = carrega.meu_texto;

		var dados:Array = [];

		var loadXML:XML = new XML();
		
		loadXML.ignoreWhite = true;
		
		loadXML.load(carrega.meu_texto);
		
		loadXML.onLoad = function(sucess) {
		
		 if (sucess) {
		
		 // trace("XML Carregado com sucessso!"+"\n");
		  lenProd = this.firstChild.childNodes;
		  for (i=0; i<lenProd.length; i++) {
		
		
		   nomevar = "xmlnome"+i;
		   linkvar = "xmllink"+i;
		   
		   _root.itens = this.firstChild.childNodes[0].childNodes[0].nodeValue;
		   _root[nomevar] = this.firstChild.childNodes[i].childNodes[0].childNodes[0].nodeValue;
		   _root[linkvar] = this.firstChild.childNodes[i].childNodes[1].childNodes[0].nodeValue;
		
		  }
		  gotoAndPlay(2)
		 } else {
		 // trace("XML nao foi Encontrado!");
		 }
		};
		
	}
	else {
		caixa.text = "Você Errou!_XD";
	}
};

carrega.load("teste.txt")

Onde ponho essa linha para testar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, tentarei colocar o loader, mas não entendi onde devo colocar o linha que o Bruno passou.

 

Meu código está assim:


System.useCodepage = true;

carrega = new LoadVars();
carrega.onLoad = function(sucess) {
	if (sucess) {
		caixa.text = carrega.meu_texto;

		var dados:Array = [];

		var loadXML:XML = new XML();
		
		loadXML.ignoreWhite = true;
		
		loadXML.load(carrega.meu_texto);
		
		loadXML.onLoad = function(sucess) {
		
		 if (sucess) {
		
		 // trace("XML Carregado com sucessso!"+"\n");
		  lenProd = this.firstChild.childNodes;
		  for (i=0; i<lenProd.length; i++) {
		
		
		   nomevar = "xmlnome"+i;
		   linkvar = "xmllink"+i;
		   
		   _root.itens = this.firstChild.childNodes[0].childNodes[0].nodeValue;
		   _root[nomevar] = this.firstChild.childNodes[i].childNodes[0].childNodes[0].nodeValue;
		   _root[linkvar] = this.firstChild.childNodes[i].childNodes[1].childNodes[0].nodeValue;
		
		  }
		  gotoAndPlay(2)
		 } else {
		 // trace("XML nao foi Encontrado!");
		 }
		};
		
	}
	else {
		caixa.text = "Você Errou!_XD";
	}
};

carrega.load("teste.txt")

Onde ponho essa linha para testar?

 

Na última linha, ficando assim:

carrega.load("teste.txt&nocache="+Math.round(Math.random()*1000));

Compartilhar este post


Link para o post
Compartilhar em outros sites

É uma simples questão de interpretar o que o colega sugeriu.

 

Resumindo: Coloque a linha - na verdade o caminho para o arquivo (arquivo.xml?nocache="+Math.round(Math.random()*1000)) no método load();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpem a ignorância na interpretação, mas estou ralando aqui para conseguir montar isso, action não pe meu forte.

 

Deu erro:

'file:///Y|/Programas%20em%20desenvolvimento/site%20%2D%20itbells/xmlJornal01.xml?nocache=196'

Error opening URL 'file:///Y|/Programas%20em%20desenvolvimento/site%20%2D%20itbells/undefined'

 

Tentei usando ? e &, nenhum dos dois funcionou.

Ficou assim:

loadXML.load(carrega.meu_texto+"&nocache="+Math.round(Math.random()*1000));

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eeeeee. Agora funcionou.

 

Coloquei o nocache tanto na abertura do arquivo texto quanto na abertura do xml, ai deu certo.

E usei ? ao invés de &.

 

Resolvido, obrigado a todos que ajudaram.

 

Abraços.

 

 

Ops, resolvido parcialmente. Funcionou no firefox e no opera, mas não no IE. Ainda não testei o Chrome, mas sem funcionar no IE complica...

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.