Ir para conteúdo

POWERED BY:

Arquivado

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

andrea cerqueira

combobox carregar o value no palco

Recommended Posts

tenho uma combobox que tá pegando os valores de determinado nó de um xml

a combo tá listando os valores certinho, mas gostaria de saber como eu faço pra a partir desse nó mostrar o que dentro dentro dele.

explicando melhor, meu xml é assim:

 

<?xml version="1.0" encoding="utf-8"?>
<galerias>
	<fotos galerias="Fotos de 2005">
		<image titulo="Divulgação 1" thumb="fotos/1.jpg" />
		<image titulo="Divulgação 2" thumb="fotos/2.jpg" />
		<image titulo="Divulgação 3" thumb="fotos/3.jpg" />
	</fotos>
	<fotos galerias="Fotos de 2006">
		<image titulo="Divulgação 4" thumb="fotos/4.jpg" />
		<image titulo="Divulgação 5" thumb="fotos/5.jpg" />
		<image titulo="Divulgação 6" thumb="fotos/6.jpg" />
	</fotos>
</galerias>

ou seja, aparecem duas galerias na minha combo, e quero que ao clicar em uma delas abram as fotos da galeria especifica.

tenho um mc instanciado de "thumb" no meu palco onde já aparecem as thumbs do primeiro nó, e queria saber como eu utilizado o "value" da combo pra passar esses valores e mudar as thumbs pra galeria especifica que foi criada.

 

o pedaço do script que faz isso é esse:

var nova_galeria:Object = new Object();
num_galerias = this.firstChild.childNodes.length;
for (a = 0; a < num_galerias; a++)
{
	this.criar_galerias = this.firstChild.childNodes[a];
	this.galerias = this.criar_galerias.attributes.galerias;
	
	_root.combo_galerias.addItem(this.galerias, aqui é o value);
	
	nova_galeria.change = function()
	{
	   getURL(combo_galerias.value);
	}
	combo_galerias.addEventListener("change", nova_galeria);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui fazer o que eu queria agora o problema é outro, antes de mostrar as thumbs novas gostaria de apagar as que estão no palco e não tá rolando com removeMovieClip

 

meu codigo tá assim:

 

this.thumbnail_image.removeMovieClip();  // aqui nessa parte é que to tentanto

for (i = 0; i < numImagens; i++)
{
	this.thumbnail_image.removeMovieClip;

	this.galeriaEscolhida = galeriaFlash.firstChild.childNodes[galeriaAtual].childNodes[i];

	// criar as thumbs e nomeia conforme o nº do indice
	this.criarThumbs = thumbnails.createEmptyMovieClip("thumbnail"+i, i);
	
	// multiplica o indice da foto pela altura dela pra dar o total de onde a imagem vai aparecer (eixo Y)
	this.criarThumbs._y = i * alturaThumb;
	
	// cria um mc com todas as thumbs criadas anteriormente dentro dele
	this.criarMcTodasThumbs = this.criarThumbs.createEmptyMovieClip("thumbnail_image", 0);
	this.criarMcTodasThumbs.loadMovie(this.galeriaEscolhida.attributes.thumbnail);
	
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim eu já tentei, mas não adianta...

 

se eu fizer assim funciona:

 

_root.thumbnails["thumbnail0"].removeMovieClip();
		_root.thumbnails["thumbnail1"].removeMovieClip();
		_root.thumbnails["thumbnail2"].removeMovieClip();
		_root.thumbnails["thumbnail3"].removeMovieClip();
		_root.thumbnails["thumbnail4"].removeMovieClip();
		_root.thumbnails["thumbnail5"].removeMovieClip();
		_root.thumbnails["thumbnail6"].removeMovieClip();

mas assim não funciona e é exatamente a mesma coisa ao meu ver:

 

for(c = 0; c < mcs; c++)
 {
	   _root.thumbnails["thumbnail" + c].removeMovieClip();
	   trace(c);
}

o trace© mostra os indices certinhos, era pra funcionar, mas não funciona http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

era para funcionar mesmo

 

testa isso para ver o que sai no trace

 

 

for(c = 0; c < mcs; c++)
{
		trace(_root.thumbnails["thumbnail" + c]);
		_root.thumbnails["thumbnail" + c].removeMovieClip();

}

 

 

se o removeMovieClip(); não vai, testa o unloadMovieClip();

 

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu já tinha feito esse trace, sai certinho tipo:

 

_level0.thumbnails.thumbnail0

_level0.thumbnails.thumbnail1

 

esse é o resultado do trace, bate perfeito mas não remove o mc do palco, se eu coloco o unloadMovie() ele só abre a primeira a vez e não roda mas o mcs, esse tb já tinha tentado e desisti logo de cara

 

já tentei removeAll() mas tb não funciona, já tentei

_root.thumbnails["thumbnail" + c]._alpha = 0;
pra testar se fica tranparente e nada http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

q loko :wacko:

 

 

e assim:

 

_root.thumbnails["thumbnail" + c].thumbnail_image.unloadMovie();

apagar o mc em que a imagem foi carregada

 

 

ou ou então no mc que tem todas elas:

 

_root.thumbnails.unloadMovie();

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, nada disso funciona http://forum.imasters.com.br/public/style_emoticons/default/natal_sad.gif

estava pensando aqui e talvez possa ser essa linha onde eu crio as thumbs:

 

this.criarThumbs = thumbnails.createEmptyMovieClip("thumbnail"+i, i);

 

pois o level delas é criado dinamicamente, mas se eu der um trace o level delas aparece como 0 e eu não entendo pq.

 

acho que vou ter que pensar em outra forma pra criar os thumbs dinamicamente, será que posso usar o attachMovie em vez de criar um mc vazio?

 

não saco de AS, to tentando achar uma solução, se tiver outra forma de fazer por favor me dá um toque ok? http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

axei o problema, era só a lógica de negocio

 

 

seu FOR estava assim

 

for(c = 0; c < mcs; c++)

 

o problema é que a variavel mcs, tem o numero de fotos que serão colocados, e não o que serão removidos

 

se você escolhia uma galeria com 6 fotos, e depois um galeria com 2 fotos,

ele executava o FOR 2 vezes (a quantidade atual) e não 6(a quantidade anterior)

 

para não ter que guardar o numero de fotos anterior, faz assim:

 

 

for(var mc in _root.thumbnails)
{

	_root.thumbnails[mc].removeMovieClip();
				
}

 

 

era só isso :lol:

 

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

é chamado de laço "for in"

 

se você usar num array, ele vai executar um numero de vezes igual o tamanho do array

 

var arr:Array = new Array("a", "b", "c", "d")

for(elemento in arr){
  trace(arr[elemento])
}

 

como no flash você pode acessar os movieCLip como se fossem array, usando a sintaxe de colchetes,

nesse codigo que te passei ele vai executar uma vez para cada movieCLip que estiver dentro do thumbnails

 

ajuda bastante esse macete ai

 

 

é isso

 

 

 

[]´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.