Ir para conteúdo

POWERED BY:

Arquivado

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

Cristiano Franco

Efeito de brilho por AS3 - iniciante

Recommended Posts

Olá galerinha, spou iniciante em AS3 e estou gostando bastante da linguagem. Sinto que as possibilidade só dependem da imaginação de cada um.

 

Criei um script curto nesta fase inicial. Ele basicamente carrega uma imagem num movieclip vazio o palco.

 

Aqui está o script:

 

import flash.net.URLRequest;

import flash.display.Loader;

import flash.events.Event;

 

mc.x = mc.y = 0;

 

var caminho:URLRequest = new URLRequest("1.jpg");

 

var loader:Loader = new Loader();

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, Carregado);

 

//Funções

function Carregado(e:Event):void {

mc.removeChildAt(0);

mc.addChild(loader);

trace("carregado!");

}

 

loader.load(caminho);

 

Tá rodando direitinho, mas agora quero colocar um efeito de brilho... o brilho vai de normal até o máximo.

Preciso fazer isto via AS3.

 

Alguém poderia me mostrar, a partir deste código, como consigo fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Publique o fla (preciso ver isso funcionando) e também um link para que possamos compreender o tipo de "efeito de brilho" que você imagina, adivinhar fica dificil.

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu te recomendo o TweenMax, é facil de usar e fica bem bacana:

 

// importa as classes
import com.greensock.*; 
import com.greensock.plugins.*;

// inicializa o plugin
TweenPlugin.activate([ColorTransformPlugin]);

//Funções
function Carregado(e:Event):void {
	mc.removeChildAt(0);
	mc.addEventListener(MouseEvent.MOUSE_OVER, mc_onMouseOver);
	mc.addEventListener(MouseEvent.MOUSE_OUT, mc_onMouseOut);
	mc.addChild(loader);
	trace("carregado!");
}

function mc_onMouseOver(event:MouseEvent):void{
	// aumenta o brilho do mc
	TweenMax.to(mc, 1, {colorTransform:{brightness:1.5}});
}

function mc_onMouseOut(event:MouseEvent):void{
	// reseta o brilho do mc
	TweenMax.to(mc, 1, {colorTransform:{brightness:1}});
}

No site http://www.greensock.com/tweenmax tem varios exemplos...

 

Espero que ajude ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

TweenMax é excelente em desempenho, resta saber se um usuário iniciante vai saber usar.

 

Melhor saber antes o que ele deseja, e adequar a solução ao nível de conhecimento.

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigos... eu já havia pesquisado a respeito das bibliotecas da greensock... consegui aprender muita coisa de ontem pra hoje e fiz meu primeiro projeto. Tive a ajuda de um excelente curso do action script (o curso eu já venho fazendo a 1 semana) do adriano gianini.

 

Meu projeto é basicamente o seguinte:

 

- 3 layers no stage (actions, movieclip(vazio) e botões)

- 5 pastas chamadas 1, 2, 3, 4 e 5 com uma imagem chamada img.jpg dentro de cada uma delas

 

A idéia é q cada imagem represente uma propaganda e q eu possa alterar sem precisar mexer no flash. Esse banner percorre as imagens a cada 9 segundos. Pretendo utilizar futuramente com asp.net (este irá mudar as imagens dentro das pastas com o tempo....). Eu não sei se está é a melhor idéia de se fazer um banner dinâmico de 5 propagandas... mas imaginei q poderia ser feito desta forma.

 

no layer actions coloquei o seguinte script:

 

import flash.display.MovieClip;
import flash.events.Event;
import com.greensock.*;
import com.greensock.easing.*;
import flash.events.MouseEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;

//mc_1.buttonMode = mc_2.buttonMode = mc_3.buttonMode = mc_4.buttonMode = mc_5.buttonMode = true;
mc.x = mc.y = 0;
//addChild(mc);

var pasta:uint = 1;
var nomeImagem:String = "/img_comprimida.jpg"
var caminho:String = "Propaganda/" + pasta + nomeImagem;
var loader = new Loader();

var timer:Timer = new Timer(9000);

//EVENTOS
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, carregado);
b1.addEventListener(MouseEvent.MOUSE_OVER, efeitoFoco);
b1.addEventListener(MouseEvent.MOUSE_OUT, efeitoNaoFoco);
b1.addEventListener(MouseEvent.CLICK, chamarImagem);

b2.addEventListener(MouseEvent.MOUSE_OVER, efeitoFoco);
b2.addEventListener(MouseEvent.MOUSE_OUT, efeitoNaoFoco);
b2.addEventListener(MouseEvent.CLICK, chamarImagem);

b3.addEventListener(MouseEvent.MOUSE_OVER, efeitoFoco);
b3.addEventListener(MouseEvent.MOUSE_OUT, efeitoNaoFoco);
b3.addEventListener(MouseEvent.CLICK, chamarImagem);

b4.addEventListener(MouseEvent.MOUSE_OVER, efeitoFoco);
b4.addEventListener(MouseEvent.MOUSE_OUT, efeitoNaoFoco);
b4.addEventListener(MouseEvent.CLICK, chamarImagem);

b5.addEventListener(MouseEvent.MOUSE_OVER, efeitoFoco);
b5.addEventListener(MouseEvent.MOUSE_OUT, efeitoNaoFoco);
b5.addEventListener(MouseEvent.CLICK, chamarImagem);

timer.addEventListener(TimerEvent.TIMER, imagemTempo);

mc.addChild(loader);

carregarPropaganda();
timer.start();

//FUNÇÕES
//timer

function imagemTempo(e:TimerEvent):void
{	
	TweenMax.from(mc, 2, {colorMatrixFilter:{brightness: 1}});
	TweenMax.to(mc, 2, {colorMatrixFilter:{brightness: 4}});
	if (pasta == 5)
	{
		pasta = 1;
	}
	else
	{
		pasta++;
	}
	caminho = "Propaganda/" + pasta + nomeImagem;
	carregarPropaganda();
	
}

//Foco;
function efeitoFoco(e:MouseEvent):void
{
	TweenMax.to(e.target, 0.2, {glowFilter:{color:0xffffff, alpha:1, blurX:30, blurY:30}});
}

//Não Foco
function efeitoNaoFoco(e:MouseEvent):void
{
	TweenMax.to(e.target, 0.2, {glowFilter:{color:0xf33fff, alpha:0, blurX:30, blurY:30}});
}

//Não Foco
function chamarImagem(e:MouseEvent):void
{
	timer.stop();
	switch (e.currentTarget)
	{
		case b1 :
			pasta = 1;
			break;

		case b2 :
			pasta = 2;
			break;

		case b3 :
			pasta = 3;
			break;

		case b4 :
			pasta = 4;
			break;

		case b5 :
			pasta = 5;
			break;
	}
	caminho = "Propaganda/" + pasta + nomeImagem;
	carregarPropaganda();
	timer.start();
}

//Carregando a imagem
function carregarPropaganda():void
{
	loader.load(new URLRequest(caminho));
}

//Criando a animação depois de carregada a imagem
function carregado(e:Event):void
{	
	TweenMax.from(mc, 1, {colorMatrixFilter:{brightness: 4}});
	TweenMax.to(mc, 1, {colorMatrixFilter:{brightness: 1}});	
}

 

Esse script eu consegui construir do zero em 2 dias intensos de estudo, tentativas e erros.... mas deu certo no final, aprendi muita coisa.

Gostaria de melhorar esse script pra q a animação ocorra no final do período...penso que deveria utilizar o eveto de encerramento do TweenMax (pois pensei em dar stop no time antes e acioná-lo novamente neste evento), mas como configurar esse evento?

 

Gostaria de saber tb formas de melhorar este código pra q ele carregue ainda mais rápido... no teste q fiz online achei q ainda tina uma demora significativa entre uma imagem e outra, mesmo após todas serem carregadas...

 

O link pra vcs visualizarem o banner é:

http://ofertaideal.com.br/testes/1.html

 

Grande abraço, galerinha.

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.