Ir para conteúdo

POWERED BY:

Arquivado

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

O Ilusionista

Problema com onRollOver

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque essa ação abaixo dessa linha:

 

eval("bt"+i)._x += i*145;

eval("bt"+i).valor = i;

 

depois no rollover coloque assim:

 

eval("bt"+i).onRollOver = function() {

this.gotoAndStop(2);

_root.modelo.text = this.childNodes[0].childNodes[this.valor].childNodes[1].firstChild;

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

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.