Ir para conteúdo

Arquivado

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

SJack

Bucha no XML

Recommended Posts

Bom dia.

 

Pessoal eu estou fazendo um a aplicação em flash que puxa dados de um XML, como eu estou aprendendo na raça eu cheguei até o certo ponto que não consegui mais ir adiante.

 

Eu tenho minhas funções que pucham e destrincham o XML que é ::

stop();function Article(nome_sess, id, nome, descricao, foto, destaque, cor1, cor2, cor3, metal1, metal2, metal3) {	this.nome_sess = nome_sess;	this.id = id;	this.nome = nome;	this.descricao = descricao;	this.foto = foto;	this.destaque = foto;	this.cor1 = cor1;	this.cor2 = cor2;	this.cor3 = cor3;	this.metal1 = metal1;	this.metal2 = metal2;	this.metal3 = metal3;}function makeArray(success) {	if (success) {		for (i=0; i<=moXML.childNodes.length; i++) {			if (this.childNodes[i].nodeName == "produtos") {				mainTag = this.childNodes[i];				nome_sess = this.childNodes[i].attributes["valor"];			}		}		for (i=0; i<=mainTag.childNodes.length; i++) {			if (mainTag.childNodes[i].nodeName == "produto") {				id = mainTag.childNodes[i].attributes["id"];				trace(id);				for (j=0; j<mainTag.childNodes[i].childNodes.length; j++) {					if (mainTag.childNodes[i].childNodes[j].nodeName != null) {						if (mainTag.childNodes[i].childNodes[j].nodeName == "nome") {							nome = mainTag.childNodes[i].childNodes[j].firstChild.nodeValue;							trace(nome);						} else if (mainTag.childNodes[i].childNodes[j].nodeName == "descricao") {							descricao = mainTag.childNodes[i].childNodes[j].firstChild.nodeValue;							trace(descricao);						} else if (mainTag.childNodes[i].childNodes[j].nodeName == "foto") {							foto = mainTag.childNodes[i].childNodes[j].firstChild.nodeValue;							trace(foto);						}						if (mainTag.childNodes[i].childNodes[j].nodeName == "destaque") {							destaque = mainTag.childNodes[i].childNodes[j].firstChild.nodeValue;							trace(destaque);						} else if (mainTag.childNodes[i].childNodes[j].nodeName == "cor1") {							cor1 = mainTag.childNodes[i].childNodes[j].firstChild.nodeValue;							trace(cor1);						}						if (mainTag.childNodes[i].childNodes[j].nodeName == "cor2") {							cor2 = mainTag.childNodes[i].childNodes[j].firstChild.nodeValue;							trace(cor2);						} else if (mainTag.childNodes[i].childNodes[j].nodeName == "cor3") {							cor3 = mainTag.childNodes[i].childNodes[j].firstChild.nodeValue;							trace(cor1);						}						if (mainTag.childNodes[i].childNodes[j].nodeName == "metal1") {							metal1 = mainTag.childNodes[i].childNodes[j].firstChild.nodeValue;							trace(metal1);						} else if (mainTag.childNodes[i].childNodes[j].nodeName == "metal2") {							metal2 = mainTag.childNodes[i].childNodes[j].firstChild.nodeValue;							trace(metal2);						}						if (mainTag.childNodes[i].childNodes[j].nodeName == "metal3") {							metal3 = mainTag.childNodes[i].childNodes[j].firstChild.nodeValue;							trace(metal3);						}					}				}				thisArticle = new Article(nome_sess, id, nome, descricao, foto, destaque, cor1, cor2, cor3, metal1, metal2, metal3);				bemArray.push(thisArticle);				delete thisArticle;			}		}		gotoAndStop(2);	}}// bemArray é o array com os dados dos nósvar bemArray = [];System.useCodepage = true;moXML = new XML();moXML.ignoreWhite = true;moXML.onLoad = makeArray;moXML.load("admin/produtos.xml");

Não foi erro não, eu fiz questão de deixar os trace para acompanhar sempre se esta tudo certo com o cód.

 

Mas o que importa mesmo pra mim agora é fazer um movie clip que contenha as fotos dentro dele, todo este meu array de fotos.

 

eu tentei fazer o seguinte não deu certo ::

 

xpos = opas2._x;dist = opas2._width - 1;for (n=0; n < bemArray.length; n++) {	duplicateMovieClip ("opas2", "opas2"+n, n);	this["opas2"+n]._x = (xpos + dist)*n;	this["opas2"+n].impar.loadMovie(bemArray[n].foto);	trace(bemArray[n].foto);	this["opas2"+n].id = bemArray[n].id;	_root.calc = (n - 2) * 12;}opas2._visible = 0;stop();

A foto se quer abre no mc impar.

 

o que eu posso fazer???

 

atenciosamente,

Compartilhar este post


Link para o post
Compartilhar em outros sites

esse codigo todo esta no mesmo frame?

De froma alguma, frame 1 chama o XML, frame 2 chama os MC´s.

Compartilhar este post


Link para o post
Compartilhar em outros sites

teste o seguinte

 

 

 

veja passo a passo onde o valor não esta chegando no array

 

 

coloque um trace antes do gotoAndStop(2);

 

trace("tam:" + bemArray.length)gotoAndStop(2);

 

e outro antes do for (que esta no segundo frame)

 

 

 

trace("tam:" + bemArray.length)for (n=0; n < bemArray.length; n++) {/**/}

 

 

diga se ele imprime algum valor na tela

Compartilhar este post


Link para o post
Compartilhar em outros sites

teste o seguinteveja passo a passo onde o valor não esta chegando no arraycoloque um trace antes do gotoAndStop(2);

trace("tam:" + bemArray.length)gotoAndStop(2);
e outro antes do for (que esta no segundo frame)
trace("tam:" + bemArray.length)for (n=0; n < bemArray.length; n++) {/**/}
diga se ele imprime algum valor na tela
Muyito, mas muito obrgado mesmo pela intenção, mas consegui resolver já... este problema pelo menos -rs-

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.