Slide Itens em Actionscript 3.0

Postado por: Julio Portnoy quinta-feira, 22 de abril de 2010 0 comentários

iai galera blz? bem legal esse tutorial que eu achei no MXStudio o resultado final e o projeto você pode pegar no final do post! espero que gostem! abração!





Classe FullSlide.as
[sourcecode language="actionscript3" firstline="8" highlight="10,11" padlinenumbers="false" wraplines="false" gutter="false"]
package lmcosta.slide
{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import gs.*;
import gs.easing.*;

/**
* …
* @author Lucas Marçal
* @link www.lucasmarcal.com.br/blog
* @see http://tweener.googlecode.com/svn/trunk/examples/
* @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();
}
}

}

}
[/sourcecode]
Exemplo
Arquivos do Tutorial

0 comentários:

Postar um comentário