Ir para conteúdo

Arquivado

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

Janelee

mais dados no xml que quantidade de mcs instanciados

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.