Mutter 0 Denunciar post Postado Novembro 5, 2012 Olá pessoal! Estou com um problema sério e bem estranho (pelo menos para mim). Um simples carregamento de XML, segue o código: var xmlPortfolio:XML = new XML(); var carregadorXML:URLLoader = new URLLoader(); carregadorXML.load(new URLRequest("xml/portfolio.xml")); carregadorXML.addEventListener(Event.COMPLETE, carregaListaPortfolio); function carregaListaPortfolio(e:Event){ xmlPortfolio = XML(carregadorXML.data); ....... } A questão é que as vezes o XML não é carregado. E por conta disso o menu do "Portfólio" no meu site não é construído. Aqui o meu site www.estudiob3.com.br Se vocês acessarem, e o menu de "Portfólio" aparecer, é porque deu tudo certo. Mas as vezes o XML não é carregado e o menu não aparece. Preciso recarregar a página varias vezes até aparecer quando não vai de primeira. Esse problema já está me deixando maluco!!! Conto com a colaboração de vocês!!! Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
marcos.cardoso 10 Denunciar post Postado Novembro 5, 2012 Boa noite. Será que não é porque você está fazendo o load antes de registrar o evento complete? Tente mudar a ordem e ver se da certo. É estranho e deve ser algum detalhezinho de nada. Comece por isso. abs Compartilhar este post Link para o post Compartilhar em outros sites
Mutter 0 Denunciar post Postado Novembro 6, 2012 Cara, vlw pela resposta! Mas infelizmente não deu certo... Continua não carregando o XML algumas vezes. Nunca vi isso!!! Como pode um código não funcionar só algumas das vezes????? :huh: Meu código ficou assim agora: var xmlPortfolio:XML = new XML(); var carregadorXML:URLLoader = new URLLoader(); carregadorXML.addEventListener(Event.COMPLETE, carregaListaPortfolio); carregadorXML.load(new URLRequest("xml/portfolio.xml")); function carregaListaPortfolio(e:Event){ xmlPortfolio = XML(carregadorXML.data); ....... } Será que algum tratamento de exceção pode ajudar? Alguém sabe como seria??? Conto com a força de vocês! Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Novembro 6, 2012 Certo, você carrega "xml/portfolio.xml". E onde acessa os nós desse arquivo? O link banners para web tem bug no scroll. Desculpe o comment, mas intros são dispensáveis. Pelo trecho de code que postou fica difícil obter sugestões. Abs Compartilhar este post Link para o post Compartilhar em outros sites
marcos.cardoso 10 Denunciar post Postado Novembro 6, 2012 Concordo com a Elektra. Talvez o erro esteja ao acessar o xml carregado, porque o carregamento está correto. abs Compartilhar este post Link para o post Compartilhar em outros sites
Mutter 0 Denunciar post Postado Novembro 6, 2012 Valew pelas resposta pessoal!!! Então, eu manipulo o XML na função carregaListaPortfolio. Mas tenho certeza de que o problema está no carregamento, porque fiz um teste. Eu simplesmente mando exibir em uma caixa de texto o meu XML, assim que ele é carregado. E o problema persiste... Dá para ver esse teste neste link Se aparecer um conteúdo XML em verde por cima do site, o XML carregou beleza, se não, pode tentar clicar em "Porfólio" que não vai funcionar já que o XML nem foi carregado. As vezes eu tenho que insistir em recarregar a página 10 vezes pra ver o problema e vise versa... Ou seja, mesmo sem manipular o XML, apenas exibindo ele em uma caixa de texto, da esse problema. Simplesmente as vezes ele não é carregado. Eu já to ficando doido aqui com esse problema ridiculo!!!!!! HEEEEELLLLPPP!!!! RS.... Será que não tem como tratar uma possivel exceção??? Tipo no Java que tem o Try-catch... Abraços e obrigado de novo!!! Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Novembro 6, 2012 E acessa sem usar XMLList e especificar qual nó será carregado? Compartilhar este post Link para o post Compartilhar em outros sites
Mutter 0 Denunciar post Postado Novembro 6, 2012 Então... Mas, o problema da antes de criar uma XMLList. Só com o código a seguir já falha as vezes: var xmlPortfolio:XML = new XML(); var carregadorXML:URLLoader = new URLLoader(); carregadorXML.addEventListener(Event.COMPLETE, carregaListaPortfolio); carregadorXML.load(new URLRequest("xml/portfolio.xml")); function carregaListaPortfolio(e:Event){ xmlPortfolio = XML(carregadorXML.data); txtTesteSaida.text = xmlPortfolio; } *Esse é o código do teste. Por isso sei que o problema é no carregamento... O que realmente é estranho... :ermm: Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
marcos.cardoso 10 Denunciar post Postado Novembro 6, 2012 Cara, muito esquisito. Quando você testa localmente não dá esse problema, dá? Compartilhar este post Link para o post Compartilhar em outros sites
Mutter 0 Denunciar post Postado Novembro 6, 2012 Pior que dá! Do mesmo jeito... As vezes parece que está tudo bem, e de repente para de carregar o XML... Aí insisto mais algumas vezes e volta a carregar... Realmente estranho... Nunca vi um código de programação funcionar de forma intermitente... Para mim isso não existe! Por isso que gostaria de fazer algo do tipo Try-Catch. Talvez assim eu consiga uma pista do que está acontecendo... Vlw!!!! Compartilhar este post Link para o post Compartilhar em outros sites
marcos.cardoso 10 Denunciar post Postado Novembro 6, 2012 Mas não ocorre nem um erro de execução, ocorre? Porque se não ocorre não seria o caso de usar try catch. Você tem certeza que não está deixando passar alguma coisa? abs Compartilhar este post Link para o post Compartilhar em outros sites
Mutter 0 Denunciar post Postado Novembro 6, 2012 Erro nenhum de execução ou de compilação... Pra você ter uma idéia, esse site está no ar desde o final do ano passado, e só fui perceber esse erro a alguns dias, por conta dessa falta de consistência do problema. Sobre deixar passar alguma coisa, eu já revirei o .FLA inteiro e todo o AS várias vezes e não achei nada. Mas, agora que você comentou sobre erro de execução, olha só; Eu executei o SWF direto no Flash (Ctrl+Enter) várias vezes e não consegui reproduzir o erro (por isso nunca vejo nenhum erro de execução). Será que o problema pode estar no HTML que contem o SWF ??? Isso é possivel??? Abraços!!!! Compartilhar este post Link para o post Compartilhar em outros sites
Elektra 102 Denunciar post Postado Novembro 6, 2012 Informe o nó ou atributo a ser carregado. Seu código de teste é incompleto. Não há como tentar auxiliar. Boa sorte. :bye: bye Compartilhar este post Link para o post Compartilhar em outros sites
marcos.cardoso 10 Denunciar post Postado Novembro 6, 2012 Tente garantir que o site só inicie quando o xml, que é essencial, estiver carregado. Não sei se pode ser isso, é a única coisa que me vem em mente agora, mas por mais leve que seja um arquivo XML ele demora um pouco para ficar pronto. Então esse tempo pode ser suficiente para gerar algum problema. Tente fazer isso para ver se o problema persiste. Compartilhar este post Link para o post Compartilhar em outros sites
Mutter 0 Denunciar post Postado Novembro 6, 2012 Vou tentar fazer isso sim! Também é minha única esperança! :o Mas a questão é como. Com JS??? Alguma sugestão de como fazer isso? Elektra, o código está completo sim. O erro não tem relação com o nó do XML que estou usando. A questão é que as vezes o XML não é carregado, logo, o nó que eu uso não faz diferença. Mas obrigado! Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
marcos.cardoso 10 Denunciar post Postado Novembro 6, 2012 A primeira coisa que o seu site tem que fazer é carregar esse xml e não fazer mais nada enquanto ele não estiver carregado, ou seja, enquanto a função carregaListaPortfolio não for chamada. Se isso não resolver, lascou. Compartilhar este post Link para o post Compartilhar em outros sites
Mutter 0 Denunciar post Postado Novembro 6, 2012 Fala galera!!! Boas noticias! Finalmente deu certo agora!!! :D Pelo menos atulizei a página "um zilhão" de vezes e carregou o XML em todas elas... Provavelmente vou morrer sem descobrir o que realmente aconteceu. Mas partilho aqui com vocês a boa notícia e a solução. Simplesmente coloquei o carregamento do XML em um frame exclusivo. Ou seja, nesse frame tudo que é feito e carregar o XMl, e só quando o XML for carregado eu passo para o proximo frame e chamo a função que manipula seus nós. Segue o código: stop(); var xmlPortfolio:XML = new XML(); var carregadorXML:URLLoader = new URLLoader(); carregadorXML.load(new URLRequest("xml/portfolio.xml")); stage.addEventListener(Event.ENTER_FRAME, carragaXML); function carragaXML(evt:Event):void{ var totalXML:Number = carregadorXML.bytesTotal; var carragadoXML:Number=carregadorXML.bytesLoaded; percentual.text=Math.floor((carragadoXML/totalXML)*100)+"%"; mcBarraLoading.scaleX=carragadoXML/totalXML; if (carragadoXML==carragadoXML) { stage.removeEventListener(Event.ENTER_FRAME, carragaXML); play(); } } Muito obrigado Marcos Cardoso e Elektra!!! :clap: Abraços! Compartilhar este post Link para o post Compartilhar em outros sites