Salve
pessoal, durante muito tempo em uma determinada agência que eu
trabalhei eu utilizei essa classe (ainda em Actionscript 2.0) para
apresentar produtos, imagens, noticias etc…
Por esse motivo decidi fazer uma versão dela para Actionscript 3.0
espero que ela possa ser útil á você nos seus trabalhos assim como ela
foi muito útil para mim!
Lembre-se siga-me no Twitter <a href=”http://www.twitter.com/lmcosta“>@lmcosta</a>
Classe FullSlide.as
package lmcosta.slide
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import gs.*;
import gs.easing.*;
/**
* ...
* @author <span>Lucas</span> <span>Marçal</span>
* @link <a href="http://www.lucasmarcal.com.br/blog" target="_blank">www.lucasmarcal.com.br/blog</a>
* @see <a href="http://tweener.googlecode.com/svn/trunk/examples/" target="_blank">http://tweener.googlecode.com/svn/trunk/examples/</a>
* @version 1.0
* @usage
* import lmcosta.slide.FullSlide
var mySlide:FullSlide = new FullSlide();
addChild(this.mySlide);
var _arr:Array = new Array(mc1,mc2,mc3,mc4,mc5);
var btSlideX:MovieClip;
var btSlideY:MovieClip;
this.btVai.addEventListener(MouseEvent.MOUSE_DOWN , clickVai);
this.btVem.addEventListener(MouseEvent.MOUSE_DOWN , clickVem);
function clickVai (e:MouseEvent):void
{
e.target.parent.parent.mySlide.moveItens(1);
}
function clickVem (e:MouseEvent):void
{
e.target.parent.parent.mySlide.moveItens(-1);
}
*/
public class FullSlide extends MovieClip
{
/**
* DEFININDO PROPRIEDADES
*/
public var itensMc:Array;
public var tipoSlide:String;
public var posX:Number;
public var posY:Number;
public var distanciaItens:Number;
public var distanciaItensFoco:Number;
public var tempoEase:Number;
public var distancia:Number;
public var itemAtual:Number;
public var itemX:Number;
public var itemY:Number;
public function FullSlide()
{
trace("Iniciou")
}
/**
*
* @param tipo: Tipo de alinhamento X ou Y
* @param arr : Array que contém os MovieClips
* @param distancia: Distancia dos MovieClips na hora do alinhamento
* @param foco: Distancia que o item deve se mover
* @param indiceAtual: MovieClip Atual
* @param posicaoX: Posição em X
* @param posicaoY: Posição em Y
*/
public function setSlide(tipo:String,arr:Array,distancia:Number, foco:Number,indiceAtual:Number,posicaoX:Number,posicaoY:Number):void
{
this.tipoSlide = tipo;
this.itensMc = arr;
this.itemAtual = indiceAtual;
this.distanciaItens = distancia;
this.distanciaItensFoco = foco;
this.posX = posicaoX;
this.posY = posicaoY;
this.tempoEase = 0.5;
setPosItens();
}
private function setPosItens():void
{
for (var i:Number = 0; i < this.itensMc.length; i++)
{
if (this.tipoSlide == "Y")
{
this.distancia = this.itemAtual - i;
this.itemY = this.posY + (this.distancia * - this.distanciaItens);
this.itensMc[i].x = Math.round(this.posX);
if (this.distancia != 0)
{
this.itemY += (Math.round(this.distanciaItensFoco) - Math.round(this.distanciaItens)) * (Math.round(this.distancia) > 0 ? -1 : +1);
}
TweenMax.to(this.itensMc[i], this.tempoEase, {y:Math.round(this.itemY),ease:Expo.easeOut});
}
else
{
this.distancia = this.itemAtual - i;
this.itemX = this.posX + (this.distancia * - this.distanciaItens);
this.itensMc[i].y = Math.round(this.posY);
if (this.distancia != 0)
{
this.itemX += (Math.round(this.distanciaItensFoco) - Math.round(this.distanciaItens)) * (Math.round(this.distancia) > 0 ? -1 : +1);
}
TweenMax.to(this.itensMc[i], this.tempoEase, {x:Math.round(this.itemX),ease:Expo.easeOut});
}
if(i - this.itensMc.length != 1)
{
TweenMax.to(this.itensMc[i], this.tempoEase, { blurFilter: { blurX:10, blurY:10, quality:1 }, z:1 } );
}
if (this.tempoEase > 0)
{
TweenMax.to(this.itensMc[this.itemAtual], this.tempoEase/2, {blurFilter:{blurX:0,blurY:0, quality:2},z:1});
}
var refItem:MovieClip = this.itensMc[i] as MovieClip;
refItem.buttonMode = true;
refItem.addEventListener(MouseEvent.MOUSE_DOWN , onDown);
refItem.addEventListener(MouseEvent.MOUSE_OVER , onOver);
refItem.addEventListener(MouseEvent.MOUSE_OUT , onOut);
refItem.nome = i;
}
}
private function onOut(e:Event):void
{
TweenMax.to(e.target, 0.2, { tint:null, ease:Linear.easeNone } );
}
private function onOver(e:Event):void
{
TweenMax.to(e.target, 0.2, { tint:0xcccccc, ease:Linear.easeNone } );
}
public function onDown(e:Event):void
{
trace("item " + e.target.nome);
this.setItens(e.target.nome)
}
/**
* @param indice
*/
public function moveItens(indice:Number):void
{
this.setItens(this.itemAtual + indice);
}
/**
* @param indice
*/
public function setItens(indice:Number):void
{
if (indice < 0) indice = 0;
if (indice > this.itensMc.length - 1) indice = this.itensMc.length - 1;
if (indice != this.itemAtual)
{
this.itemAtual = indice;
this.setPosItens();
}
}
}
}
<a href=”http://www.lucasmarcal.com.br/labs/FullSlide.html“>Exemplo</a>
<a href=”http://www.lucasmarcal.com.br/labs/FullSlide.rar“>Arquivos do Tutorial</a>
Abraço a todos, semana que vem tem mais!
Opa Tudo bom?
Muito bom o seu tutorial era isso mesmo que eu queria, mas tem uma coisa… como eu faço para o slide rolar sozinho??? Mas continuando com os botões.
Legal man, como faço pra por um nome em cada botão,pra ficar tipo menu de navegação?
Olá pessoal.
Estou com um problema que nao consigo resolver. Tenho um arquivo swf que tem um mapa com varios pontos como botoes, quando passo o mouse sobre estes botoes ele me mostra algumas informações sobre esta localidade certo e isso eu fiz da maneira manual, dentro da propriedade “hover” do botao. Acontece que agora to precisando fazer com que apareça 3 ou 4 imagens com intervalo de 5 segundos +ou- no lugar da informações. eu consegui com o “loadMovie” carregar a primeira imagem “teste1″ dentro do MC vazio e queria saber como faço pra carregar as outras com tempo definido. Valew mesmo se puderem me ajudar.