Ir para conteúdo

POWERED BY:

Arquivado

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

Flávio Izo

[Resolvido] O que está errado neste arquivo?

Recommended Posts

Galera... o onRelease não funciona de jeito nenhum, a não ser que eu coloque o link direto, mas quando o movie clip é dinâmico dá pau.

 

Puxo as imagens via xml e quero colocar links nelas.

 

Tenho um movie clip chamado conteudo e dentro dele coloque no primeiro frame o seguinte:

 

largura = 0;

// posicao inicial do movie clip

_root.conteudo._x=10;

_root.conteudo._y=0;

listaCaminho = new Array();

listaEndereco = new Array();

// Faz aceitar acentos

System.useCodepage = true;

leitor = new XML();

leitor.ignoreWhite = true;

leitor.load("cursos.xml");

leitor.onLoad = function(ok) {

if (ok) {

// recebendo o tamanho do xml

tam = leitor.firstChild.childNodes.length;

for (x=0; x<tam; x++) {

// recebendo valores do xml

novoCaminho = leitor.firstChild.childNodes[x].childNodes[0].firstChild.nodeValue;

novoEndereco = leitor.firstChild.childNodes[x].childNodes[1].firstChild.nodeValue;

// criando o movie clip

_root.conteudo.createEmptyMovieClip("nCurso"+x,getNextHighestDepth());

//recebendo o movieclip

novoMc = _root.conteudo["nCurso"+x];

// abrindo a imagem

novoMc.loadMovie(novoCaminho);

// mudando o posicionamento

novoMc._y = largura;

largura = largura + 215;

novoMc._x = 0;

trace(novoMc);

// CRIA FUNÇÃO PARA QUANDO O USUÁRIO CLICAR EM CIMA.

novoMc.onRelease = function() {

trace("funfou");

getURL(novoEndereco, "_blank");

};

}

 

}

};

No xml tenho:

 

<inicio>

<conteudo>

<caminho>images/cursos/curso01.jpg</caminho>

<endereco>cursos.php?codigo=1</endereco>

</conteudo>

<conteudo>

<caminho>images/cursos/curso02.jpg</caminho>

<endereco>cursos.php?codigo=2</endereco>

</conteudo>

<conteudo>

<caminho>images/cursos/curso03.jpg</caminho>

<endereco>cursos.php?codigo=3</endereco>

</conteudo>

<conteudo>

<caminho>images/cursos/curso04.jpg</caminho>

<endereco>cursos.php?codigo=4</endereco>

</conteudo>

<conteudo>

<caminho>images/cursos/curso01.jpg</caminho>

<endereco>cursos.php?codigo=1</endereco>

</conteudo>

<conteudo>

<caminho>images/cursos/curso02.jpg</caminho>

<endereco>cursos.php?codigo=2</endereco>

</conteudo>

<conteudo>

<caminho>images/cursos/curso03.jpg</caminho>

<endereco>cursos.php?codigo=3</endereco>

</conteudo>

<conteudo>

<caminho>images/cursos/curso04.jpg</caminho>

<endereco>cursos.php?codigo=4</endereco>

</conteudo>

</inicio>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que armazenar o "caminho" do arquivo no próprio MC que você vai clicar, ou ter alguma outra forma de recuperar. Pq usando variável no release ele vai sempre pegar o último valor da variável.

 

 

(este é só um pedaço do seu código pra você acrescentar o armazenamento do caminho correspondente)

novoMc._x = 0;
novoMc.caminho = novoEndereco;

// CRIA FUNÇÃO PARA QUANDO O USUÁRIO CLICAR EM CIMA.
novoMc.onRelease = function() {
getURL(this.caminho, "_blank"); 
};
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema ainda é o uso da mesma variável. você pode tentar usar um array também, mas usando o nome do MC que você criou com createEmptyMovieClip deve funcionar.

 

//recebendo o movieclip <- nao existe mais
// abrindo a imagem
_root.conteudo["nCurso"+x].loadMovie(novoCaminho);
// mudando o posicionamento
_root.conteudo["nCurso"+x]._y = largura;
largura = largura + 215;
_root.conteudo["nCurso"+x]._x = 0;
_root.conteudo["nCurso"+x].novoEndereco;
trace(_root.conteudo["nCurso"+x].novoEndereco);
// CRIA FUNÇÃO PARA QUANDO O USUÁRIO CLICAR EM CIMA.
_root.conteudo["nCurso"+x].onRelease = function() {
trace("funfou");
getURL(this.novoEndereco, "_blank"); 
}

 

Agora, veja se você não precisa colocar o caminho da URL toda pra carregar. Se precisar a linha do getURL fica assim:

 

getURL("http://www.endereco.com.br/" + this.novoEndereco, "_blank");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Leila, obrigado, mas ainda não funcionou.

 

O problema é que não é o link que aparece errado, o problema é queo link (maozinha) nem aparece.

 

reparei que na função onRelease ele tá criadno assim:

 

_level0.conteudo.nCurso0.onRelease = function(){ // minha funcao }

_level0.conteudo.nCurso1.onRelease = function(){ // minha funcao }

_level0.conteudo.nCurso2.onRelease = function(){ // minha funcao }

_level0.conteudo.nCurso3.onRelease = function(){ // minha funcao }

//etc.

 

Nòa sei se clareia alguma coisa isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

largura = 0;
// posicao inicial do movie clip
_root.conteudo._x = 10;
_root.conteudo._y = 0;
// Faz aceitar acentos
System.useCodepage = true;
leitor = new XML();
leitor.ignoreWhite = true;
leitor.load("cursos.xml");
leitor.onLoad = function(ok) {
	if (ok) {
// recebendo o tamanho do xml
	tam = leitor.firstChild.childNodes.length;
	novoCaminho = [];
	novoEndereco = [];
	for (i=0; i<tam; i++) {
// recebendo valores do xml
			novoCaminho[i] = leitor.firstChild.childNodes[i].childNodes[0].firstChild.nodeValue;
			novoEndereco[i] = leitor.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue;
// criando o movie clip
			novoMc = _root.conteudo.createEmptyMovieClip("nCurso"+i,i);
			novoMc = _root.conteudo["nCurso"+i].createEmptyMovieClip("nImg", 999);
//recebendo o movieclip
			novoMc = _root.conteudo["nCurso"+i];
			novoMc.link = i;
// abrindo a imagem
			novoMc.nImg.loadMovie(novoCaminho[i]);
// mudando o posicionamento
			novoMc._y = largura;
			largura = largura + 215;
			novoMc._x = 0;
// CRIA FUNÇÃO PARA QUANDO O USUÁRIO CLICAR EM CIMA.
			novoMc.onRelease = function() {
				trace("http://www.seudominio.com.br/"+novoEndereco[this.link]);
				getURL("http://www.seudominio.com.br/"+novoEndereco[this.link], "_blank");
			};
		}
	}
}

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

só explicando o que o Public2004 fez

 

o problema é que quando você usa o comando mc.loadMovie(), e depois tenta adicionar algum evento como o onRelease, não irá funcionar

 

o movieClip "perde" a área de hit, por isso a mãozinha não aparece, para resolver crie um outro movieClip dentro dele, e carregue a imagem nesse mc interno

 

assim ele terá um área de hit para clicar

 

 

[]´s

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.