..:: MX Studio Fóruns ::..: Erro de codificacao para leitura de xml AS2 [RESOLVIDO] - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Erro de codificacao para leitura de xml AS2 [RESOLVIDO]

#1 User is offline   Laudir 

  • Group: Membros
  • Posts: 4
  • Joined: 21-July 11

Posted 08 August 2011 - 01:46 PM

Bom dia a todos!
Sou totalmente crú com o flash mas já consegui fazê-lo interpretar o xml e apresentar seu conteúdo na tela, porém não consigo fazer com que ele rotacione os textos do xml pois este é muito grande.
o xml foi gerado pelo php/mysql
são versículos bíblicos que devem aparecer na tela e de tanto em tantos segundos ser trocado por outro (a proxima linha).
Sem muita conversa, aí vão os códigos:

XML (reduzi um pouco a qtde de linhas dele pra nao gerar um spam aqui):
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<texto>
<XML id= <![CDATA["para que façam saber aos filhos dos homens os teus feitos poderosos e a glória do esplendor do teu reino. (Salmos: 145. 12)"]]></XML>
<XML id= <![CDATA["Firma os meus passos na tua palavra; e não se apodere de mim iniqüidade alguma. (Salmos: 119. 133)"]]></XML>
<XML id= <![CDATA["Por amor do teu templo em Jerusalém, os reis te trarão presentes. (Salmos: 68. 29)"]]></XML>
<XML id= <![CDATA["Tu os quebrarás com uma vara de ferro; tu os despedaçarás como a um vaso de oleiro. (Salmos: 2. 9)"]]></XML>
<XML id= <![CDATA["Nela habitava o teu rebanho; da tua bondade, ó Deus, proveste o pobre. (Salmos: 68. 10)"]]></XML>
<XML id= <![CDATA["Esquadrinhas o meu andar, e o meu deitar, e conheces todos os meus caminhos. (Salmos: 139. 3)"]]></XML>
<XML id= <![CDATA["Eles sobem ao céu, descem ao abismo; esvaece-lhes a alma de aflição. (Salmos: 107. 26)"]]></XML>
<XML id= <![CDATA["Ele é o Deus que me cinge de força e torna perfeito o meu caminho; (Salmos: 18. 32)"]]></XML>
<XML id= <![CDATA["Justo és, ó Senhor, e retos são os teus juízos. (Salmos: 119. 137)"]]></XML>
<XML id= <![CDATA["Como um pai se compadece de seus filhos, assim o Senhor se compadece daqueles que o temem. (Salmos: 103. 13)"]]></XML>
<XML id= <![CDATA["Olha para a minha aflição, e livra-me, pois não me esqueço da tua lei. (Salmos: 119. 153)"]]></XML>
<XML id= <![CDATA["Ordena, ó Deus, a tua força; confirma, ó Deus, o que já fizeste por nós. (Salmos: 68. 28)"]]></XML>
<XML id= <![CDATA["Ainda que eu ande pelo vale da sombra da morte, não temerei mal algum, porque tu estás comigo; a tua vara e o teu cajado me consolam. (Salmos: 23. 4)"]]></XML>
</texto>



arquivo fla

/*		function ler()
		{*/
			System.useCodepage = true;
			var meuXML:XML = new XML();
			meuXML.load("versiculos.xml");
			meuXML.ignoreWhite = true;
			meuXML.onLoad = function()
			{
				contador.text = this.childNodes[0].childNodes[0].attributes.id
			}
			trace ("Resultado do trace: "+this.firstChild.childNodes.childNodes);
//		}
//setInterval(ler,5000);



ele está sempre mostrando a palavra UNDEFINED no trace.
Qual o erro de codificação?
0

#2 User is offline   Rodrigo Pixel 

  • Group: Moderadores
  • Posts: 1279
  • Joined: 07-May 07

Posted 08 August 2011 - 02:16 PM

No xml não usa CDATA dentro de atributos, apenas dentro de elementos. Ex:
<elemento_xml atributo="conteudo"> <![CDATA[ outro conteudo ]]> </elemento_xml>


Isso pode te ajudar sobre xml:
http://www.w3schools.com/xml/

Se quiser inserir conteúdo dentro de atributos, poderá deixar o xml assim:
<?xml version="1.0" encoding="UTF-8" ?>
<texto>
	<conteudo id="para que façam saber aos filhos dos homens os teus feitos poderosos e a glória do esplendor do teu reino. (Salmos: 145. 12)"></conteudo>
	<conteudo id="Firma os meus passos na tua palavra; e não se apodere de mim iniqüidade alguma. (Salmos: 119. 133)"></conteudo>
	<conteudo id="Por amor do teu templo em Jerusalém, os reis te trarão presentes. (Salmos: 68. 29)"></conteudo>
	<conteudo id="Tu os quebrarás com uma vara de ferro; tu os despedaçarás como a um vaso de oleiro. (Salmos: 2. 9)"></conteudo>
	<conteudo id="Nela habitava o teu rebanho; da tua bondade, ó Deus, proveste o pobre. (Salmos: 68. 10)"></conteudo>
	<conteudo id="Esquadrinhas o meu andar, e o meu deitar, e conheces todos os meus caminhos. (Salmos: 139. 3)"></conteudo>
	<conteudo id="Eles sobem ao céu, descem ao abismo; esvaece-lhes a alma de aflição. (Salmos: 107. 26)"></conteudo>
	<conteudo id="Ele é o Deus que me cinge de força e torna perfeito o meu caminho; (Salmos: 18. 32)"></conteudo>
	<conteudo id="Justo és, ó Senhor, e retos são os teus juízos. (Salmos: 119. 137)"></conteudo>
	<conteudo id="Como um pai se compadece de seus filhos, assim o Senhor se compadece daqueles que o temem. (Salmos: 103. 13)"></conteudo>
	<conteudo id="Olha para a minha aflição, e livra-me, pois não me esqueço da tua lei. (Salmos: 119. 153)"></conteudo>
	<conteudo id="Ordena, ó Deus, a tua força; confirma, ó Deus, o que já fizeste por nós. (Salmos: 68. 28)"></conteudo>
	<conteudo id="Ainda que eu ande pelo vale da sombra da morte, não temerei mal algum, porque tu estás comigo; a tua vara e o teu cajado me consolam. (Salmos: 23. 4)"></conteudo>
</texto>


No flash, pra ler o atributo "id" da 1º linha:
var meuXML:XML = new XML();
meuXML.load("versiculos.xml");
meuXML.ignoreWhite = true;
meuXML.onLoad = function()
{
	//mostra conteúdo que está no atributo id do 1º elemento <conteudo>
	//------------- arquivoXml > 1º nó texto > 1º nó conteúdo > conteúdo do atributo id
	contador.text = meuXML.childNodes[0].childNodes[0].attributes.id
}



Se quiser mostrar frases em tempo em tempo, segue um exemplo como pode ficar no flash:
/***************************
 * VARIABLES - configura aqui
 ***************************/
 
var count:Number = 0; //contador pra ler xml, sempre começa com zero.
var totalLinhas:Number = 13; //total de linhas/frases do xml
var segundosDeEspara:Number = 1; //segundos que espera para carregar próxima linha

//seu arquivo xml...
var meuXML:XML = new XML();
meuXML.load("versiculos.xml");
meuXML.ignoreWhite = true;
meuXML.onLoad = leuXml; //evento quando estiver carregado...


/***************************
 * FUNCTIONS
 **************************/

//quando ler o xml, manipula informações...
function leuXml(ok:Boolean):Void
{
	if(ok)
	{
		//passa o xml e intervalos em segundos...
		carregaFrasesXMLComIntervalos(meuXML, segundosDeEspara);
	}
	else
	{
		trace("erro ao carregar");
	}
}


//manipula o conteúdo mostrando a linha xml em sequencia depois do intervalo
function carregaFrasesXMLComIntervalos(xml:XML, sec:Number):Void
{
	//carrega primeira linha... contador sempre começa do zero que é a 1º linha!
	contador.text = xml.childNodes[0].childNodes[count].attributes.id;
	trace("linha nº: " + Number(count+1) );
	
	//carrega linhas com intervalos intervalos....
	setInterval(function()
	{
		//se já está na ultima linha, carrega a primeira novamente...
		if(count >= totalLinhas-1)
		{
			trace("* recomeça.");
			count = 0;
			contador.text = xml.childNodes[0].childNodes[count].attributes.id;
		}
		//carrega proxima linha...
		else
		{
                        count++;
			contador.text = xml.childNodes[0].childNodes[count].attributes.id;
		}
		
		trace("linha nº: " + Number(count+1) );
	}, sec*1000);
}


Abraço.
0

#3 User is offline   Laudir 

  • Group: Membros
  • Posts: 4
  • Joined: 21-July 11

Posted 08 August 2011 - 03:56 PM

fiz como o teu exemplo, mas deu uma sobrecarga no meu micro que tive que derrubar o flash.
no crome e no iexplorer nao apareceu nada
0

#4 User is offline   Rodrigo Pixel 

  • Group: Moderadores
  • Posts: 1279
  • Joined: 07-May 07

Posted 08 August 2011 - 04:43 PM

Aqui funciona normal.

Segue o exemplo (Flash CS4):
http://www.mediafire...c1ulvblw2q6b3fc

Abraço.
0

#5 User is offline   Laudir 

  • Group: Membros
  • Posts: 4
  • Joined: 21-July 11

Posted 08 August 2011 - 05:06 PM

View PostRodrigo Pixel, on 08 August 2011 - 04:43 PM, said:

Aqui funciona normal.

Segue o exemplo (Flash CS4):
http://www.mediafire...c1ulvblw2q6b3fc

Abraço.


será problema da versão do meu flash?
http://4.bp.blogspot.com/-AA7hArJeawc/TkAyw45yz4I/AAAAAAAAA6w/VCrFGWIihXo/s320/vers_flash.jpg
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)