Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera, tudo bom?
Seguinte: estou fazendo uma galeria utilizando XML, até aí normal, tudo funciona - ele pega todas as informações do XML, carregando as imagens corretas e alimentando os textos dinâmicos, que estão dentro de um MC chamado "titulo".
mas aí que vem o problema:
Quero que, ao passar o mouse sobre cada peça, ele pegue o valor de cada nó no xml...só que ele não pega.
CODE
for (i=0; i<qtd; i++) {
//agora duplicamos o MovieClip ‘bt" que é o nosso modelo
bt.duplicateMovieClip("bt"+i,_root.getNextHighestDepth());
//configuramos a largura do novo botao
eval("bt"+i)._x += i*145;
//Pegar imagem a ser carregada
eval("bt"+i).container.loadMovie(this.childNodes[0].childNodes*.childNodes[0].firs*
tChild);
//Armazenar valores dos nós
* Tmodelo = this.childNodes[0].childNodes**.childNodes[1].firstChild;*
* Tnome = this.childNodes[0].childNodes**.childNodes[2].firstChild;*
* Taltura = this.childNodes[0].childNodes**.childNodes[3].firstChild;*
* Tlargura = this.childNodes[0].childNodes**.childNodes[4].firstChild;*
* Tmadeira = this.childNodes[0].childNodes**.childNodes[5].firstChild;*
// alimentando valores
_root.titulo.modelo.text = Tmodelo;
_root.titulo.nome.text = Tnome;
_root.titulo.altura.text = Taltura;
_root.titulo.largura.text = Tlargura;
_root.titulo.madeira.text = Tmadeira;
//criamos a funcao rollover para o botao
eval("bt"+i).onRollOver = function() {
this.gotoAndStop(2);
eval("bt"+i).btNum = i
_root.modelo.text = this.childNodes[0].childNodes[this.btNum].childNodes[1].firstChild;
_root.titulo.nome.text = Tnome;
_root.titulo.altura.text = Taltura+" - "+this._name;
_root.titulo.largura.text = Tlargura;
_root.titulo.madeira.text = Tmadeira;
};
//Criamos a função rollout
eval("bt"+i).onRollOut = function() {
this.gotoAndStop(1);
};
}
//Removemos o MovieClip ‘bt" que funcionou como molde
bt.unloadMovie();
};
A parte problemática é essa:
CODE
* //criamos a funcao rollover para o botao** eval("bt"+i).onRollOver = function() {*
this.gotoAndStop(2);
eval("bt"+i).btNum = i
_root.modelo.text = this.childNodes[0].childNodes[this.btNum].childNodes[1].firstChild;
_root.titulo.nome.text = Tnome;
_root.titulo.altura.text = Taltura+" - "+this._name;
_root.titulo.largura.text = Tlargura;
_root.titulo.madeira.text = Tmadeira;
};
Alguém poderia me dar uma luz?
[]s
Não funciona, ele retorna o mesmo valor. Ele tem que pegar o valor de cada nó.
edit: o correto seria "_root.titulo.modelo.text = this.childNodes[0].childNodes[this.valor].childNodes[1].firstChild; "
Mas ele retorna UNDEFINED
Postei o código aqui, se quiser dar uma olhada: http://w16.easy-share.com/1700099359.html
O erro está no this. pois esle pega esse this como sendo do movieclip, e na verdade o dado é do xml dados, então coloque assim:
eval("bt"+i).onRollOver = function() {
this.gotoAndStop(2);
_root.titulo.modelo.text = dados.childNodes[0].childNodes[this.valor].childNodes[1].firstChild;
}Deus te abençoe cara, tá funcionando!!!!
Caracas, valeu mesmo...vou poder finalmente entregar esta bagaça!
edit: agora so estou com um unico problema: O xml está dando pau nesta linha:
<altura><![CDATA[203/214/244 cm (80"/84"/96")]]></altura>
os caracteres " ele poe em unicode. Ja tentei substituir, mas não vai. Como faço?
devo usar iso-8859-1 ou UTF-8?
coloque o .nodeValue no final, exemplo:
Taltura = this.childNodes[0].childNodes.childNodes[3].firstChild.nodeValue;
sem palavras pra te agradecer!
Eu nunca entendi direito esse lance do nodeValue
Coloque essa ação abaixo dessa linha:
depois no rollover coloque assim: