Janelee 0 Denunciar post Postado Junho 1, 2009 Olá novamente. É o seguinte. eu tenho um XML parceiros.xml <?xml version="1.0" encoding="UTF-8" ?> <indice> <pagina>parceiros/p1.jpg</pagina><pagina>parceiros/p2.jpg</pagina><pagina>parceiros/p3.jpg</pagina><pagina>parceiros/p4.jpg</pagina><pagina>parceiros/p5.jpg</pagina><pagina>parceiros/p6.jpg</pagina><pagina>parceiros/p7.jpg</pagina></indice> aí em minha pagina tem 6 movies instanciados, pra receber dados do xml. que geralmente eu faria assim: p1.loadMovie(this.firstChild.childNodes[0].childNodes[0].nodeValue); p2.loadMovie(this.firstChild.childNodes[1].childNodes[0].nodeValue); p3.loadMovie(this.firstChild.childNodes[2].childNodes[0].nodeValue); p4.loadMovie(this.firstChild.childNodes[3].childNodes[0].nodeValue); p5.loadMovie(this.firstChild.childNodes[4].childNodes[0].nodeValue); p6.loadMovie(this.firstChild.childNodes[5].childNodes[0].nodeValue); Mas se eu tiver mais que 6 parceiros, teria que aparecer uma flecha e esse movies receberem os outros. tentei fazer um for e contar os nós, mas não deu muito certo. alguém pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Junho 2, 2009 Bom o caminho é um for mesmo var max = 6; for(var i:Number = 0; i < max; i++){ p1.loadMovie(this.firstChild.childNodes[i].childNodes[0].nodeValue); p2.loadMovie(this.firstChild.childNodes[i].childNodes[0].nodeValue); p3.loadMovie(this.firstChild.childNodes[i].childNodes[0].nodeValue); p4.loadMovie(this.firstChild.childNodes[i].childNodes[0].nodeValue); p5.loadMovie(this.firstChild.childNodes[i].childNodes[0].nodeValue); p6.loadMovie(this.firstChild.childNodes[i].childNodes[0].nodeValue); } Ai o que você teria de fazer é simples parar esse for no maximo dele no caso 6 Você teria de trabalhar com variaveis moldaveis para que clicando na setinha ela seja incrementada 1 ou decrementada 1... ou seja um contador... que no caso seria o max. Partindo de 6. Terá de fazer uma função que chame a leitura do xml toda vez que você clicar e fazer com que ande para frente ou para trás esse for Podendo fazer assim por exemplo: var init:Number = 0; var max:Number = 6; function recarregaXML(){ for(var i:Number = (0 + init); i < (max + init); i++){ p1.loadMovie(this.firstChild.childNodes[i].childNodes[0].nodeValue); p2.loadMovie(this.firstChild.childNodes[i].childNodes[0].nodeValue); p3.loadMovie(this.firstChild.childNodes[i].childNodes[0].nodeValue); p4.loadMovie(this.firstChild.childNodes[i].childNodes[0].nodeValue); p5.loadMovie(this.firstChild.childNodes[i].childNodes[0].nodeValue); p6.loadMovie(this.firstChild.childNodes[i].childNodes[0].nodeValue); } }; Veja que se eu colocar uma seta para avançar vai bastar eu re chamar a função recarregaXML assim: bt_avancar = function(){ init++; recarregaXML(); } Assim resolveria seu problema acredito eu... O melhor maneira que você deveria fazer isso é colocar dentro de um array e usar um MovieClipLoader() com um duplicateMovie() ficaria mais fácil para resolver seu problema. Abraços Compartilhar este post Link para o post Compartilhar em outros sites