Slide Itens em Actionscript 3.0

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 &lt; 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) &gt; 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) &gt; 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 &gt; 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 &lt; 0) indice = 0;
if (indice &gt; 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!

Escrito por Lucas_marcal on novembro 29, 2009. Arquivado em Flash. Você pode seguir as respostas a esse artigo pelo RSS 2.0. Você pode deixar respostas para esse artigo

3 respostas a Slide Itens em Actionscript 3.0

  1. 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.

  2. Legal man, como faço pra por um nome em cada botão,pra ficar tipo menu de navegação?

  3. Eisenhower.silva

    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.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>