Ir para conteúdo

POWERED BY:

Arquivado

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

André - Editor

[Resolvido] Change Color travando a animação

Recommended Posts

Tenho um botão que quando dá rollover ele é animado e muda de uma palavra pra outra... essa palavra está instanciada com nome de txt01_bt01 e a segunda palavra com instance de txt02_bt01

 

 

Acontece que, funciona tudo otimo, o botão funciona com o rollover rollout na boa.... só que quando eu uso:

 

trans.color = cor3;
				botao01.txt01_bt01.transform.colorTransform = trans;

 

Para trocar de cor as palavras, elas trocam de cor, mas a animação para de funcionar, a palavra simplesmente fica estática...

 

 

Alguém pode me ajudar a resolveR?

 

Envio o FLA com a animação funcionando (sem a troca de cores) e outro com a troca de cor que faz a animação parar de funcionar.

 

http://www.4shared.com/file/90725674/520f2...A_FUNCIONA.html

 

http://www.4shared.com/file/90725711/75fd1...N_FUNCIONA.html

 

Obrigado desde já,

 

André Rodrigues

 

 

 

 

EDIT:

 

PRA GALERA QUE NÃO CONSEGUIU ABRIR OS FLAS:

 

Faz o seguinte, vou postar o código e o SWF, ai vcs podem pegar ele e descompilar... tem sothink ai neh? só descompilar o swf...

 

Link pro main_timeline.as:

 

http://www.4shared.com/file/90742538/2f04deb7/Banner01.html

 

Link pro SWF da animação:

 

http://www.4shared.com/file/90742553/ee8ca...n_timeline.html

 

Código contido no main_timeline.as:

 

package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.geom.ColorTransform;
	import flash.events.MouseEvent;
	import flash.net.URLRequest;
	import flash.net.navigateToURL;
	
	public class main_timeline extends Sprite
	{
		private var cor0:Number;
		private var cor1:Number;
		private var cor2:Number;
		private var cor3:Number;
		private var cor4:Number;
		private var v_bt01:Boolean;
		
		public function main_timeline()
		{
			//Outras variáveis
			v_bt01 = false;
			
			//Declara as variáveis de cor como string:
			var s_cor0:String;
			var s_cor1:String;
			var s_cor2:String;
			/*var s_cor3:String;*/
			/*var s_cor4:String;*/
			
			//Tenta pegar as variáveis do HTML:
			try
			{
				s_cor0 = root.loaderInfo.parameters['color0'].substring(1, 7);
				s_cor1 = root.loaderInfo.parameters['color1'].substring(1, 7);
				s_cor2 = root.loaderInfo.parameters['color2'].substring(1, 7);
				/*s_cor3 = root.loaderInfo.parameters['color3'].substring(1, 7);*/
				/*s_cor4 = root.loaderInfo.parameters['color4'].substring(1, 7);*/
			}
			catch (e:TypeError) //Se não conseguir pegar, cores padrão
			{
				s_cor0 = "FF0000";
				s_cor1 = "00FF00";
				s_cor2 = "0000FF";
				/*s_cor3 = "FF0000";*/
				/*s_cor4 = "999999";*/
			}
			
			//Trocando as variáveis do HTML para RGB:
			cor0 = (Number)("0x"+s_cor0);
			cor1 = (Number)("0x"+s_cor1);
			cor2 = (Number)("0x"+s_cor2);
			/*cor3 = (Number)("0x"+s_cor3);*/
			/*cor4 = (Number)("0x"+s_cor4);*/
			
			//Modificando cores no swf
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
			
			//Controlando o botão:
			botao01.botao01_bt.addEventListener(MouseEvent.MOUSE_OVER, bt01_manageMouseOver);
			botao01.botao01_bt.addEventListener(MouseEvent.MOUSE_OUT, bt01_manageMouseOut);
			botao01.botao01_bt.addEventListener(MouseEvent.CLICK, bt01_manageMouseClick);
			botao01.addEventListener(Event.ENTER_FRAME, bt01_manageEnterFrame);
			}
			
			//Variáveis:
		
		//Função para Rollover dos botões:
		private function bt01_manageMouseOver(e:MouseEvent)
		{
			  botao01.gotoAndPlay (1);
			v_bt01 = true;
		}
		
 		private function bt01_manageMouseOut(e:MouseEvent)
		{
			botao01.gotoAndPlay (10);
		}
		
		private function bt01_manageMouseClick(e:MouseEvent)
		{
		var url:String = "http://www.google.com";
		var request:URLRequest = new URLRequest(url);
			try {
			navigateToURL(request, '_blank');
			}
			catch (e:Error) {
			trace("Error occurred!");
			}
		}
		
		private function bt01_manageEnterFrame(e:Event)
		{
			if (v_bt01 == false) botao01.gotoAndStop (19);
			if (botao01.currentFrame == 10) botao01.stop();
			if (botao01.currentFrame == 19) botao01.stop();
		}
		
		//Fução para trocar as cores:
		private function onEnterFrame(event:Event)
		{
			
				var trans:ColorTransform = new ColorTransform;

				trans.color = cor0;
				fundo.transform.colorTransform = trans;
				
				trans.color = cor1;
				fundo_menu.transform.colorTransform = trans;
				
				trans.color = cor2;
				fundo_menu2.transform.colorTransform = trans;
				
				/*trans.color = cor3;
				botao01.txt01_bt01.transform.colorTransform = trans;*/
				
				/*trans.color = cor4;
				txt02_bt01.transform.colorTransform = trans;*/
				
				removeEventListener(Event.ENTER_FRAME, onEnterFrame);
		}
	}
}

Faz o seguinte, vou postar pra você o codigo... e o SWF, ai você pega ele e descompila ele... tem sothink ai neh?

 

Link pro main_timeline.as:

 

http://www.4shared.com/file/90742538/2f04deb7/Banner01.html

 

Link pro SWF da animação:

 

http://www.4shared.com/file/90742553/ee8ca...n_timeline.html

 

Código contido no main_timeline.as:

 

package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.geom.ColorTransform;
	import flash.events.MouseEvent;
	import flash.net.URLRequest;
	import flash.net.navigateToURL;
	
	public class main_timeline extends Sprite
	{
		private var cor0:Number;
		private var cor1:Number;
		private var cor2:Number;
		private var cor3:Number;
		private var cor4:Number;
		private var v_bt01:Boolean;
		
		public function main_timeline()
		{
			//Outras variáveis
			v_bt01 = false;
			
			//Declara as variáveis de cor como string:
			var s_cor0:String;
			var s_cor1:String;
			var s_cor2:String;
			/*var s_cor3:String;*/
			/*var s_cor4:String;*/
			
			//Tenta pegar as variáveis do HTML:
			try
			{
				s_cor0 = root.loaderInfo.parameters['color0'].substring(1, 7);
				s_cor1 = root.loaderInfo.parameters['color1'].substring(1, 7);
				s_cor2 = root.loaderInfo.parameters['color2'].substring(1, 7);
				/*s_cor3 = root.loaderInfo.parameters['color3'].substring(1, 7);*/
				/*s_cor4 = root.loaderInfo.parameters['color4'].substring(1, 7);*/
			}
			catch (e:TypeError) //Se não conseguir pegar, cores padrão
			{
				s_cor0 = "FF0000";
				s_cor1 = "00FF00";
				s_cor2 = "0000FF";
				/*s_cor3 = "FF0000";*/
				/*s_cor4 = "999999";*/
			}
			
			//Trocando as variáveis do HTML para RGB:
			cor0 = (Number)("0x"+s_cor0);
			cor1 = (Number)("0x"+s_cor1);
			cor2 = (Number)("0x"+s_cor2);
			/*cor3 = (Number)("0x"+s_cor3);*/
			/*cor4 = (Number)("0x"+s_cor4);*/
			
			//Modificando cores no swf
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
			
			//Controlando o botão:
			botao01.botao01_bt.addEventListener(MouseEvent.MOUSE_OVER, bt01_manageMouseOver);
			botao01.botao01_bt.addEventListener(MouseEvent.MOUSE_OUT, bt01_manageMouseOut);
			botao01.botao01_bt.addEventListener(MouseEvent.CLICK, bt01_manageMouseClick);
			botao01.addEventListener(Event.ENTER_FRAME, bt01_manageEnterFrame);
			}
			
			//Variáveis:
		
		//Função para Rollover dos botões:
		private function bt01_manageMouseOver(e:MouseEvent)
		{
			  botao01.gotoAndPlay (1);
			v_bt01 = true;
		}
		
 		private function bt01_manageMouseOut(e:MouseEvent)
		{
			botao01.gotoAndPlay (10);
		}
		
		private function bt01_manageMouseClick(e:MouseEvent)
		{
		var url:String = "http://www.google.com";
		var request:URLRequest = new URLRequest(url);
			try {
			navigateToURL(request, '_blank');
			}
			catch (e:Error) {
			trace("Error occurred!");
			}
		}
		
		private function bt01_manageEnterFrame(e:Event)
		{
			if (v_bt01 == false) botao01.gotoAndStop (19);
			if (botao01.currentFrame == 10) botao01.stop();
			if (botao01.currentFrame == 19) botao01.stop();
		}
		
		//Fução para trocar as cores:
		private function onEnterFrame(event:Event)
		{
			
				var trans:ColorTransform = new ColorTransform;

				trans.color = cor0;
				fundo.transform.colorTransform = trans;
				
				trans.color = cor1;
				fundo_menu.transform.colorTransform = trans;
				
				trans.color = cor2;
				fundo_menu2.transform.colorTransform = trans;
				
				/*trans.color = cor3;
				botao01.txt01_bt01.transform.colorTransform = trans;*/
				
				/*trans.color = cor4;
				txt02_bt01.transform.colorTransform = trans;*/
				
				removeEventListener(Event.ENTER_FRAME, onEnterFrame);
		}
	}
}

 

 

Para fazer o código com a mudança de cor e visualizar o problema que ocorre basta tirar de comentarios as seguintes partes do codigo:

 

/*var s_cor3:String;*/

 

/*s_cor3 = root.loaderInfo.parameters['color3'].substring(1, 7);*/

 

/*s_cor3 = "FF0000";*/

 

/*cor3 = (Number)("0x"+s_cor3);*/

 

/*trans.color = cor3;

botao01.txt01_bt01.transform.colorTransform = trans;*/

 

 

Só tirar as / e * de todas essas partes e testar o swf, verás que mudou a primeira palavra HOME pra cor VERMELHA, no entando ela perde a animação dela, fica estática e imóvel.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui finalmente resolver o problema das cores no texto:

 

 

Seguinte, antes eu tinha um MC que continha um MC que continha o texto static...

 

 

Basta mudar o texto para DYNAMIC e colocar um instance name nele tb....

 

 

Aí na hora de me referir ao texto antes eu me referia assim:

 

botao01.txt02_bt01.transform.colorTransform = trans;

 

 

Ou seja, acesse o MC botao01, e troque a cor do MC txt02_bt01

 

 

 

 

AGORA O JEITO CORRETO É, APÓS MUDAR O TEXTO DE STATIC PARA DYNAMIC E DAR UM INSTANCE NAME PARA ELE você ACESSA:

 

 

 

botao01.txt02_bt01.nome_do_instace_do_texto_dinamico.transform.colorTransform = trans;

 

 

no meu caso coloquei:

 

botao01.txt02_bt01.txt_01.transform.colorTransform = trans;

 

 

 

PRONTINHO! OS TEXTOS MUDAM DE COR DE ACORDO COM AS VARIAVEIS E NÃO PERDEM A ANIMAÇÃO! :D

 

 

Espero que possa ter ajudado algumas pessoas!

 

 

Abraços :D

 

 

PS: O PROBLEMA SOBRE COMO CONTROLAR A TIMELINE PERSISTE, VEJAM TÓPICO:

http://forum.imasters.com.br/index.php?showtopic=334380

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.