krawczuk 0 Denunciar post Postado Maio 31, 2007 http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Fala galera, eu sou novo no forum e começo postando uma dúvida e espero que eu encontre a resposta para ela aqui, a dúvida é o seguinte: " EU tenho um arquivo em XML e outro em flash, eu já consegui duplicar o movie clip que irá abrigar o conteúdo do meu XML, a partir dos nós do XML, só que o conteúdo dos nós do XML não aparece no movie clip, só aparece o movie clip duplicado, com a quantidade dos nós do XML. Abaixo coloquei os códigos contido no arquivo FLA. e o XML. ARQUIVO FLA.: System.useCodepage = true; var nomeXML:XML = new XML(); nomeXML.load("meuXML.xml"); nomeXML.ignoreWhite = true; nomeXML.onLoad = function(ok) { if (ok) { xmlNode = this.firstChild; total = xmlNode.childNodes.length; monta(); } else { mensagem.text = "Erro ao Carregar o arquivo XML"; nome.text = ""; } }; function monta(){ for (var i = 0; i<total; i++){ img.duplicateMovieClip("produto" + i,i); if (i!= 0){ this["produto" + i]._x = this["produto" + (i-1)]._x + this["produto" + i]._width + 10; //img.loadMovie(xmlNode.childNodes.childNodes[0].firstChild.nodeValue); //nome.text = (xmlNode.childNodes.childNodes[1].firstChild.nodeValue); } } }; E ESSE É O DO XML: <?xml version="1.0" encoding="iso-8859-1"?> <produtos> <descricao> <imagem>imagem1.jpg</imagem> <texto>produtos e marca4</texto> </descricao> <descricao> <imagem>imagem2.jpg</imagem> <texto>produtosemarca5</texto> </descricao> <descricao> <imagem>imagem3.jpg</imagem> <texto>produtosemarca6</texto> </descricao> <descricao> <imagem>imagem4.jpg</imagem> <texto>produtosemarca7</texto> </descricao> </produtos> Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Junho 1, 2007 Supondo que dentro do mc img você tenha um outro mc chamado foto e um campo de texto chamado nome: function monta(){ for (var i = 0; i<total; i++){ var mc_atual = img.duplicateMovieClip("produto" + i,i); if (i!= 0){ mc_atual._x = this["produto" + (i-1)]._x + mc_atual._width + 10; mc_atual.foto.loadMovie(xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue); mc_atual.nome.text = (xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue); } }};Abraço Compartilhar este post Link para o post Compartilhar em outros sites
krawczuk 0 Denunciar post Postado Junho 4, 2007 Valeu Antônio, vou testar aqui. Obrigado mesmo.abr Compartilhar este post Link para o post Compartilhar em outros sites
krawczuk 0 Denunciar post Postado Junho 4, 2007 Antonio deu certo, mas a imagem do primeiro nó não aparece. E sem querer abusar, como faço o flash puxar o conteúdo dos nós, que estão dentro de um servidor. Só me diz qual caminho seguir.abr Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Junho 5, 2007 Deve ser só retirar aquele if estranho que não tirei antes. :P function monta(){ for (var i = 0; i<total; i++){ var mc_atual = img.duplicateMovieClip("produto" + i,i); mc_atual._x = this["produto" + (i-1)]._x + mc_atual._width + 10; mc_atual.foto.loadMovie(xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue); mc_atual.nome.text = (xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue); }}; E para puxar de um outro lugar é só mudar o caminho do comando load() mesmo. Só que o seu swf tem que estar no mesmo domínio que o xml. Flw Compartilhar este post Link para o post Compartilhar em outros sites
krawczuk 0 Denunciar post Postado Junho 8, 2007 Antonio mais uma vez obrigado, você me salvou, mas estou com um outro problema. Eu quero linkar o conteúdo do movieclip mas não estou conseguindo o código esta assim: System.useCodepage = true; var nomeXML:XML = new XML(); nomeXML.load("xmlflash2.jsp"); nomeXML.ignoreWhite = true; nomeXML.onLoad = function(ok) { if (ok) { xmlNode = this.firstChild; total = xmlNode.childNodes.length; monta(); } else { mensagem.text = "Erro ao Carregar o arquivo XML"; nome.text = ""; } }; function monta(){ for (var i = 0; i<total; i++){ var mc_atual = img.duplicateMovieClip("produto" + i,i); mc_atual._x = this["produto" + (i-1)]._x + mc_atual._width + 10; mc_atual.foto.loadMovie(xmlNode.childNodes.childNodes[0].firstChild.nodeValue ); mc_atual.nome.text = (xmlNode.childNodes.childNodes[1].firstChild.nodeValue); mc_atual.preco.text = (xmlNode.childNodes.childNodes[2].firstChild.nodeValue); mc_atual.endereco = this.childNodes.childNodes[3].firstChild; mc_atual.onPress = function(){ getURL(this.endereco); } } }; Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Junho 9, 2007 Crie um botão transparente dentro do mc padrão (o img) e use mc_atual.botao.onRelease = function(){ getURL(_parent.endereco); } Abraço Compartilhar este post Link para o post Compartilhar em outros sites
krawczuk 0 Denunciar post Postado Junho 11, 2007 Antonio eu coloquei o código mas quando eu faço o teste ele me retorna como "undefined" na barra de endereço. Desculpas por importunar você é que eu ainda não sei trabalhar com XML no Flash. o código esta assim: function monta(){ for (var i = 0; i<total; i++){ var mc_atual = img.duplicateMovieClip("produto" + i,i); mc_atual._x = this["produto" + (i-1)]._x + mc_atual._width + 5; mc_atual.foto.loadMovie(xmlNode.childNodes.childNodes[0].firstChild.nodeValue ); mc_atual.nome.text = (xmlNode.childNodes.childNodes[1].firstChild.nodeValue); mc_atual.preco.text = (xmlNode.childNodes.childNodes[2].firstChild.nodeValue); mc_atual.ende = this.childNodes.childNodes[3].firstChild; mc_atual.botao.onRelease = function() { getURL(_parent.endereco); } Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Junho 11, 2007 Opa, esqueci de colocar um this na frente: mc_atual.endereco = this.childNodes[i].childNodes[3].firstChild;mc_atual.botao.onRelease = function() {getURL(this._parent.endereco);} Abraço Compartilhar este post Link para o post Compartilhar em outros sites