..:: MX Studio Fóruns ::..: Color Transform em Loader - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Color Transform em Loader Como aplicar colorTransform em um arquivo externo

#1 User is offline   junior.c.e 

  • Group: Membros
  • Posts: 47
  • Joined: 03-July 11

Posted 01 March 2012 - 05:26 PM

Galera é o seguinte baixei este arquivo de um tuto na net onde se usa o método “transforme color” para alterar a cor de alguns objetos. No entanto preciso que ela mude a cor dos objetos (movie clipes) vindo de um “Loader” , ou seja todo o “as” com os demais arquivos que faz executa a animação estará em um único swf, já os arquivos que devem ter sua cor alterada vem de outros swf carregados para o swf base.
Eu já tentei da seguinte forma:
//Criei as variáveis para buscar o arquivo externo//
var carregarImg:Loader = new Loader();
var enderecoImg:URLRequest = new URLRequest("arquivo1.swf");
carregarImg.load(enderecoImg);
addChild(carregarImg);
Coloquei os objetos dentro de um unico movieclip com stancia “ objetos”
O cod todo ficou da seguinte forma:
//ACOES CARREGA ARQUIVOS EXTERNOS//
var carregarImg:Loader = new Loader();
var enderecoImg:URLRequest = new URLRequest("teste.swf");
carregarImg.load(enderecoImg);
addChild(carregarImg);
Todo AS ficou da seguinte forma:

//ACOES TRANSFORM COLOR//
//ACOES CARREGA ARQUIVOS EXTERNOS//
var carregarImg:Loader = new Loader();
var enderecoImg:URLRequest = new URLRequest("arquivos.swf");
carregarImg.load(enderecoImg);
recebe.addChild(carregarImg);



//ACOES TRANSFORM COLOR//
import fl.events.SliderEvent;
var testClipTransform:ColorTransform;
redTxt.text="0";
greenTxt.text="0";	
blueTxt.text="0";
setUpListeners();
updateTestClip();
function updateTestClip():void {	
	testClipTransform=new ColorTransform(0,0,0,1,redSlider.value,greenSlider.value,blueSlider.value,0);	
	mcTest.transform.colorTransform = testClipTransform; 	
}
function setUpListeners():void {	
	var i:Number;
    for (i=0; i<8; i++) {	
	    this.objetos["tr"+String(i)].addEventListener(MouseEvent.CLICK, changeTriangleColor);	
   }
  redSlider.addEventListener(SliderEvent.CHANGE, redChanged);  
  greenSlider.addEventListener(SliderEvent.CHANGE, greenChanged);  
  blueSlider.addEventListener(SliderEvent.CHANGE, blueChanged);  
  btnReset.addEventListener(MouseEvent.CLICK, resetSquare);
}
function redChanged(evt:SliderEvent):void {	
	redTxt.text=String(redSlider.value);	
	updateTestClip();
	}
function greenChanged(evt:SliderEvent):void {	
	greenTxt.text=String(greenSlider.value);	
	updateTestClip();
	}
function blueChanged(evt:SliderEvent):void {	
	blueTxt.text=String(blueSlider.value);	
	updateTestClip();	
}
function changeTriangleColor(evt:MouseEvent):void {	
	var thisTriangle:MovieClip = MovieClip(evt.currentTarget);	
	var curTransform:ColorTransform=testClipTransform;	
	thisTriangle.transform.colorTransform = curTransform; 
}
function resetSquare(evt:MouseEvent):void {	
	var i:Number;	
	redSlider.value=0;	
	greenSlider.value=0;	
	blueSlider.value=0;	
	updateTestClip();	
	redTxt.text="0";
	greenTxt.text="0";	
	blueTxt.text="0";	
    for (i=0; i<8; i++) {	
	    this.objetos["tr"+String(i)].transform.colorTransform=new ColorTransform(0,0,0,1,0,0,255,0);		
   }
	
}

Os arquivo é externo é carregado corretamente, porem não funciona as ações ColorTransform dando este erro “TypeError: Error #1010: A term is undefined and has no properties.
at arquivo_base_fla::MainTimeline/setUpListeners()
at arquivo_base_fla::MainTimeline/arquivo_base_fla::frame1()”
Galera alguém sabe como resolver isso, se é que é possível?

Estes são os arquivos Download
0

#2 User is offline   RONYTORRES 

  • Group: Moderadores
  • Posts: 385
  • Joined: 07-December 06

Posted 02 March 2012 - 10:02 AM

Seguinte, para ter um controle melhor, procure adicionar arquivos swf, dentro de movieclips criados dinamicamente. Vai por mim.
Então, com base no seu código, eu deletaria o mc recebe que está instanciado na cena, e o código ficaria assim:

//Crio o movieclip "recebe"
var recebe:MovieClip;

var carregarImg:Loader = new Loader();
var enderecoImg:URLRequest = new URLRequest("arquivos.swf");
carregarImg.load(enderecoImg);
//Adiciono um ouvinte para verificar quando o swf estiver carregado por completo.
carregarImg.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);

function loaded(event:Event):void {
	//seto o conteúdo do loader, indicando que é MovieClip, ao movieclip 'recebe'
	recebe = event.target.content as MovieClip;
	//posiciono o mc 'recebe'
	recebe.x = 35;
	recebe.y = 102;
	//adiciono na cena
	addChild(recebe);
	//e por fim chamo a função que estava sendo chamada, independente se o swf tinha sido carregado ou não.
	setUpListeners();
}


Dessa forma, você consegue ter acesso aos movieclips do swf carregado, caso contrário, você não consegue acessá-los nunca.

Observe também nos laços 'for' como é feito o acesso. Simples né!
0

#3 User is offline   junior.c.e 

  • Group: Membros
  • Posts: 47
  • Joined: 03-July 11

Posted 02 March 2012 - 10:25 AM

Fala Roney beleza?

Cara mais uma vez vc me ajudando, confeço que este projeto esta me dando uma grande dor de cabeça, pois eu não entendia nada de AS3.0 só de AS2.0.
É o seguinte deletei o mc recebe como vc me indicou e troquei o cod onde carregava, porem esta dando a seguinte msg e nao consigo acessar o mc que foi carregado não funcionando o colorTransforme.
TypeError: Error #1010: A term is undefined and has no properties.
at arquivo_base_fla::MainTimeline/setUpListeners()
at arquivo_base_fla::MainTimeline/arquivo_base_fla::frame1()
TypeError: Error #1010: A term is undefined and has no properties.
at arquivo_base_fla::MainTimeline/setUpListeners()
at arquivo_base_fla::MainTimeline/loaded()

Att. Junior
0

#4 User is offline   RONYTORRES 

  • Group: Moderadores
  • Posts: 385
  • Joined: 07-December 06

Posted 02 March 2012 - 11:33 AM

Normal acontecer isso com a gente, fiz uma salada na época também. Mas com a prática do dia-a-dia a gente vai pegando o espírito da coisa.

Acho que a função 'setUpListeners' tá sendo chamada duas vezes.

Veja o código completo como deve ficar:

//ACOES CARREGA ARQUIVOS EXTERNOS//
/*
var carregarImg:Loader = new Loader();
var enderecoImg:URLRequest = new URLRequest("arquivos.swf");
carregarImg.load(enderecoImg);
recebe.addChild(carregarImg);*/

//Crio o movieclip "recebe"
var recebe:MovieClip;

var carregarImg:Loader = new Loader();
var enderecoImg:URLRequest = new URLRequest("arquivos.swf");
carregarImg.load(enderecoImg);
//Adiciono um ouvinte para verificar quando o swf estiver carregado por completo.
carregarImg.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);

function loaded(event:Event):void {
	//seto o conteúdo do loader, indicando que é MovieClip, ao movieclip 'recebe'
	recebe = event.target.content as MovieClip;
	//posiciono o mc 'recebe'
	recebe.x = 35;
	recebe.y = 102;
	//adiciono na cena
	addChild(recebe);
	//e por fim chamo a função que estava sendo chamada, independente se o swf tinha sido carregado ou não.
	setUpListeners();
}



//ACOES TRANSFORM COLOR//
import fl.events.SliderEvent;
var testClipTransform:ColorTransform;
redTxt.text="0";
greenTxt.text="0";	
blueTxt.text="0";
setUpListeners();
updateTestClip();

function updateTestClip():void {	
	testClipTransform=new ColorTransform(0,0,0,1,redSlider.value,greenSlider.value,blueSlider.value,0);	
	mcTest.transform.colorTransform = testClipTransform; 	
}

function setUpListeners():void {	
	var i:Number;
    for (i=0; i<8; i++) {	
	    recebe.objetos["tr"+i].addEventListener(MouseEvent.CLICK, changeTriangleColor);	
   	}
 	redSlider.addEventListener(SliderEvent.CHANGE, redChanged);  
 	greenSlider.addEventListener(SliderEvent.CHANGE, greenChanged);  
  	blueSlider.addEventListener(SliderEvent.CHANGE, blueChanged);  
  	btnReset.addEventListener(MouseEvent.CLICK, resetSquare);
}

function redChanged(evt:SliderEvent):void {	
	redTxt.text=String(redSlider.value);	
	updateTestClip();
}

function greenChanged(evt:SliderEvent):void {	
	greenTxt.text=String(greenSlider.value);	
	updateTestClip();
}

function blueChanged(evt:SliderEvent):void {	
	blueTxt.text=String(blueSlider.value);	
	updateTestClip();	
}

function changeTriangleColor(evt:MouseEvent):void {	
	var thisTriangle:MovieClip = MovieClip(evt.currentTarget);	
	var curTransform:ColorTransform=testClipTransform;	
	thisTriangle.transform.colorTransform = curTransform; 
}

function resetSquare(evt:MouseEvent):void {	
	var i:Number;	
	redSlider.value=0;	
	greenSlider.value=0;	
	blueSlider.value=0;	
	updateTestClip();	
	redTxt.text="0";
	greenTxt.text="0";	
	blueTxt.text="0";	
    for (i=0; i<8; i++) {	
	    recebe.objetos["tr"+i].transform.colorTransform=new ColorTransform(0,0,0,1,0,0,255,0);		
	}
	
}

0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic


Similar Topics Collapse

  Topic Forum Started By Stats Last Post Info
New Replies Como rodar
o flex
Flex tiagocaus 
  • 3 Replies
  • 2485 Views
New Replies gvetor
como fazer
ColdFusion odair alves de souza 
  • 1 Reply
  • 918 Views
New Replies Área de Cobertura de Impressão
Como saber???
Processos Gráficos Lexotan6mg 
  • 1 Reply
  • 2921 Views
New Replies Plug in
como eu faço
Fireworks Gleison 
  • 5 Replies
  • 1144 Views
New Replies Como mandar o logo do photoshop para o corel
para enviar para a grafica
Processos Gráficos Rafael Gomes 
  • 11 Replies
  • 4841 Views
New Replies Tecnologia transforma óculos comuns em tela de cinema Notícias Notícias 
  • 0 Replies
  • 345 Views
New Replies URL em Frame, como é mesmo?
Faz tempo que não mexo com frame, esqueci!
Dreamweaver sbonds 
  • 1 Reply
  • 792 Views
New Replies Vetoriais, Pen Tool e outros..
Como desenhar!!
Fireworks Federico 
  • 9 Replies
  • 1951 Views

Publicidade




2 User(s) are reading this topic
0 membro(s), 2 visitante(s) e 0 membros anônimo(s)