Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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?
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}});
}Espero que ajude ^^
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
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:
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.
Pode tentar a tween normal do flash.
Abs
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.