Ir para conteúdo

POWERED BY:

Arquivado

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

inx

guardar valor em duplicated movie clip e enviar a _root.

Recommended Posts

Olá, eu aqui de novo...

To bolando uma espécie de galeria, tudo ocorria bem até eu ter a idéia idiota de fazer com que os valores selecionados na galeria abrissem em um outro mc no _root.

quando declaro a variavel como global ele manda sómente o valor do último nó para a capa. =S.. e quando não declaro ele manda undefined. =S

No AS está o comentário, peço que deêm uma olhada.

 

destaquei.duplicateMovieClip('destaquei'+i,_root.destaques.getNextHighestDepth(0));
		_root.destaques['destaquei'+i]._x += i*220;
		_root.destaques['destaquei'+i].titulod.text = this.firstChild.childNodes[i].childNodes[0].childNodes[0];
                //Declaro as variaveis
		var media = this.firstChild.childNodes[i].childNodes[1].childNodes[0];
		var thumb1 = this.firstChild.childNodes[i].childNodes[3].childNodes[0];
		var thumb2 = this.firstChild.childNodes[i].childNodes[4].childNodes[0];
		var thumb3 = this.firstChild.childNodes[i].childNodes[5].childNodes[0];
		var foto1 = this.firstChild.childNodes[i].childNodes[6].childNodes[0];
		var foto2 = this.firstChild.childNodes[i].childNodes[7].childNodes[0];
		var foto2 = this.firstChild.childNodes[i].childNodes[8].childNodes[0];
                //busco as imagens pekenas e com loadmovie simples e linko o botão
		_root.destaques['destaquei'+i].alvo.loadMovie(media);
		_root.destaques['destaquei'+i].link = _root.destaques['destaquei'+i];
		_root.destaques['destaquei'+i].onRelease = function() {
			Tweener.addTween(_root.destaques,{_y:Stage.height*2, _alpha:10, time:3, transition:"Bounce"});
			Tweener.addTween(_root.fundodestaques,{_y:280, _height:Stage.height, time:1, transition:"easeOutElastic"});

			_root.vazio.unloadMovie();
                        
			SWFAddress.setValue("Destaques");
			Tweener.addTween(_root.capad,{_alpha:100, time:0.5});

                        //AQUI TA O ERRO - JÁ DECLAREI COMO GLOBAL, MAS NÃO FUNCIONA. =s..
			_root.capad.carregacapa.loadMovie(foto1);

                        //QUANDO DECLARO COMO GLOBAL ELE LISTA A ÚLTIMA, QUANDO NAO DECLARO ELE DA UNDEFINED
			trace(foto1);
		};
		_root.destaques['destaquei'+i].onRollOver = function() {
			this.link._alpha = 75;
		};
		_root.destaques['destaquei'+i].onRollOut = function() {
			this.link._alpha = 100;
		};
	}
	destaquei.unloadMovie();
};
---

Alguém me da um help. =D

*Usei letras em caixa alta nos comment do as para uma melhro vizualização.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize um for para carregar o conteúdo do seu XML e, dentro dele, crie um MC e atribua a ele os valores do XML. Este Mc então puxará um botão linkado na lib. Esse botão pegará os valores do MC e, ao clic, chama uma função para carregar as imagens.

 

Exemplo rápido

for(i = 0; i< xml.length; i++){
	var mc:MovieClip = this.createEmptyMovieClip("mc"+i, i);
	mc.attachMovie("img_botao_mc_na_lib", "mc"+i, i);

	mc.media = m = o_no_de_media_no_xml;
	mc.thumb = o_no_de_thumb_no_xml;
	mc.foto = o_no_de_foto_no_xml; 
	mc._x = posicaoX;
	mc._y = posicaoY;
}
// img_botao_mc_na_lib -> é o botao carregado pro palco
// ações dentro dele
var media = _parent.media;
var thumb = _parent.thumb;
var foto = _parent.foto;
this.onRelease = function(){
	_root.funcaoAbreFoto(foto);
}
// aqui também você coloca o efeito do rollover e rollout
	

Esta é a idéia básica do que você pode fazer.

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, eu aqui de novo...

To bolando uma espécie de galeria, tudo ocorria bem até eu ter a idéia idiota de fazer com que os valores selecionados na galeria abrissem em um outro mc no _root.

quando declaro a variavel como global ele manda sómente o valor do último nó para a capa. =S.. e quando não declaro ele manda undefined. =S

No AS está o comentário, peço que deêm uma olhada.

 

destaquei.duplicateMovieClip('destaquei'+i,_root.destaques.getNextHighestDepth(0));
		_root.destaques['destaquei'+i]._x += i*220;
		_root.destaques['destaquei'+i].titulod.text = this.firstChild.childNodes[i].childNodes[0].childNodes[0];
                //Declaro as variaveis
		var media = this.firstChild.childNodes[i].childNodes[1].childNodes[0];
		var thumb1 = this.firstChild.childNodes[i].childNodes[3].childNodes[0];
		var thumb2 = this.firstChild.childNodes[i].childNodes[4].childNodes[0];
		var thumb3 = this.firstChild.childNodes[i].childNodes[5].childNodes[0];
		var foto1 = this.firstChild.childNodes[i].childNodes[6].childNodes[0];
		var foto2 = this.firstChild.childNodes[i].childNodes[7].childNodes[0];
		var foto2 = this.firstChild.childNodes[i].childNodes[8].childNodes[0];
                //busco as imagens pekenas e com loadmovie simples e linko o botão
		_root.destaques['destaquei'+i].alvo.loadMovie(media);
		_root.destaques['destaquei'+i].link = _root.destaques['destaquei'+i];
		_root.destaques['destaquei'+i].onRelease = function() {
			Tweener.addTween(_root.destaques,{_y:Stage.height*2, _alpha:10, time:3, transition:"Bounce"});
			Tweener.addTween(_root.fundodestaques,{_y:280, _height:Stage.height, time:1, transition:"easeOutElastic"});

			_root.vazio.unloadMovie();
                        
			SWFAddress.setValue("Destaques");
			Tweener.addTween(_root.capad,{_alpha:100, time:0.5});

                        //AQUI TA O ERRO - JÁ DECLAREI COMO GLOBAL, MAS NÃO FUNCIONA. =s..
			_root.capad.carregacapa.loadMovie(foto1);

                        //QUANDO DECLARO COMO GLOBAL ELE LISTA A ÚLTIMA, QUANDO NAO DECLARO ELE DA UNDEFINED
			trace(foto1);
		};
		_root.destaques['destaquei'+i].onRollOver = function() {
			this.link._alpha = 75;
		};
		_root.destaques['destaquei'+i].onRollOut = function() {
			this.link._alpha = 100;
		};
	}
	destaquei.unloadMovie();
};
---

Alguém me da um help. =D

*Usei letras em caixa alta nos comment do as para uma melhro vizualização.

 

Aqui vai uma idéia simples de como resolver isto:

for(i = 0; i< xml.length; i++){
	var mc:MovieClip = this.createEmptyMovieClip("mc"+i, i);
	mc.attachMovie("img_botao_mc_na_lib", "mc"+i, i);
	mc.media =  valor do no do xml;
	mc.thumb = valor do no do xml;
	mc.foto = valor do no do xml;
	mc._x = posicaoX;
	mc._y = posicaoY;
}
function funcaoAbreFoto(aquivo){
    aqui_mc.loadMovie(arquivo);
}
// img_botao_mc_na_lib -> é o botao carregado pro palco
var media = _parent.media;
var thumb = _parent.thumb;
var foto = _parent.foto;
this.onRelease = function(){
	_root.funcaoAbreFoto(foto);
} // as ações do rollover e rollout você coloca aqui também

Compartilhar este post


Link para o post
Compartilhar em outros sites

Brow... valew.. testei sua idéia e fungo e descobri outro jeito também..

o duplicatedMovieclip trabalha com id´s..

 

_root.destaques['destaquei'+i].id2 = this.firstChild.childNodes[i].childNodes[7].childNodes[0];

depois é só xamá-lo..

Valew ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw Berseck.. Mais uma coisa me preocupa, vocÊ não ve esse tipo de explicação em lugar nenhum...

Nem no dicionário AS2 que tenho aqui... Descobri sózinho... =S

 

Outra coisa...

Resolvido..

Abçs!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade o help do flash ensina fazer isso...

 

Mas só se você procurar por coisas muito especificas... e dar a sorte de ter um exemplo... pq nem sempre tem exemplo no help.

 

Quando você tem uma variavel que recebe varios nomes... automaticamente essa variavel virou um objeto... que contem aquelas informações

 

Ai um objeto para se recuperar os dados é sempre objeto['nome'+i] pois normalmente quando colocamos varios avlores a um objeto é atrelado a um for....

 

Mas você pode também somar nomes... ai complica mais ainda ficando objeto['nome'+'outro'] e ai começa a complicar a coisa.

Mas o principio base é esse do this['mc'+i] que tanto o MX Studio usa ;)

 

Abraços

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.