logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  • Mobile
  Twitter   Feed-me! RSS!

Slide Itens em Actionscript 3.0

Colocado por Lucas Marçal na(s) categoria(s): Destaque, FullSlide, Tutoriais, interface em 11 22nd, 2009 | Sem comentários

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 @lmcosta

Classe FullSlide.as

/**
 * @author  Lucas Marçal
 * @link    www.lucasmarcal.com.br/blog
 * @email   inbox@lucasmarcal.com.br
 * @version 1.0
 */
package lmcosta.slide
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import gs.*;
	import gs.easing.*;

	public class FullSlide extends MovieClip
	{
		/**
		 * DEFININDO PROPRIEDADES
		 */
		private var itensMc:Array;
		private var tipoSlide:String;
		private var posX:Number;
		private var posY:Number;
		private var distanciaItens:Number;
		private var distanciaItensFoco:Number;
		private var tempoEase:Number;
		private var distancia:Number;
		private var itemAtual:Number;
		private var itemX:Number;
		private var itemY:Number;

		public function FullSlide() {}

		/**
		 *
		 * @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;
			}
		}

		public function moveItens(indice:Number):void
		{
			this.setItens(this.itemAtual + indice);
		}

		private 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();
			}
		}

		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 } );
		}

		private function onDown(e:Event):void
		{
			//trace("item " + e.target.nome);
			this.setItens(e.target.nome)
		}

	}

}

BotaoControle.as

/**
 * @author  Lucas Marçal
 * @link    www.lucasmarcal.com.br/blog
 * @email   inbox@lucasmarcal.com.br
 * @version 1.0
 */
package lmcosta.slide
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import lmcosta.slide.FullSlide

	public class BotaoControle extends FullSlide
	{
		internal var ref:FullSlide
		internal var indice:Number;

		public function BotaoControle(_objeto:MovieClip,_fullSlide:FullSlide,_qtdItemMove:Number)
		{
			this.ref = _fullSlide;
			this.indice = _qtdItemMove;

			_objeto.buttonMode = true;
			_objeto.addEventListener(MouseEvent.MOUSE_DOWN, onDow);
		}

		private function onDow(e:MouseEvent):void
		{
			this.ref.moveItens(this.indice);
		}
	}

}

Coloque esse código no frame de action da sua aplicação e crie os MovieClips.

import lmcosta.slide.FullSlide
import lmcosta.slide.BotaoControle;

var mySlide:FullSlide = new FullSlide()
var _arr:Array =  new Array(mc1,mc2,mc3,mc4,mc5)

this.mySlide.setSlide("X",_arr,mc1.width, mc1.width,0,184,72);
var refVai:BotaoControle = new BotaoControle(btVai.btAtiva,this.mySlide,1)
var refVem:BotaoControle = new BotaoControle(btVem.btAtiva,this.mySlide,-1)

addChild(this.mySlide);

Exemplo
Arquivos do Tutorial

Abraço a todos, semana que vem tem mais!



Veja o post original no blog do autor aqui!  

Lucas Marçal

Escrito por Lucas Marçal @ http://www.lucasmarcal.com.br/blog/
Saiba mais sobre o autor na sua pagina de perfil
Outros posts do autor:
» Validando Campos de formulário no Actionscript 3.0
» Flash Remoting + ColdFusion + AMFPHP
» Tutoriais de OOP em vídeo por Michel Araújo

Deixe um comentário



Spam Protection by WP-SpamFree

tube8com
nudetubecom
xtube football toilette
redtube.com porn
porn tube
the tube
peg tube
cum swap tube
tube8 and beastiality
shush tube.com
famous pornstar tube
zoo tube 365
yuo tube porno
zootubecouk
tube xxx
rapetube
nikki blond filestube
zoo animal sex tube
zoosex tube 365
utube porn sites
hqtube
mature tube
gay porn tube
nudisten tube
shocking tube
porno tube xxx
dog sex tube
redtube
porn tube8
www.nude tube.com
4tube
8 tube
scat orgy tube 8
dancing xtube
twinksxtubeporn
tube x
zootubecom
animaal sex tube
psp sexy tubes
tubeteenscom
zoo sexe tube
london tube map
xtube gay jizz
pornhube
xtube spor
amateur porn tubes
beast tube
bondage and tube
adult tube sites
spankingtube
xtubecom
xtube rumen
panty pissing xtube
youporne
twin fuck tube
tivias tube
man tube
porno tube
tube8 video
hot tube
redtube4
test tubes
vacuum tube
jeans pissing xtube
ourtube
iyot tube
yoy tube
red.tube.com
bdsm tube
hqtubecom
amateur asian creampies red tube
crushfetishtube
free tube porn
anonymous redtube
blacktube
saving xtube videos
redtubecom
german porn tube
extreme tube porn
bestiality tube
rawtube
www red tubecom
beastiality tube
tube videos
redtube porn
eskimotube
teentube
xtube big brothers
zootube
redtube.eu
rocket tube
kick boxing xtube
download redtube videos
asian porn tube
free porn tubecom
xtube videos
brazzerstube.com
re tube
tubehentai
free sex tube
xtube cumming
hardtube
tube365 com
xxxtube
one tube oscillators
pornoytube
sextube videos
yuvutu
hard sex tube
tube8.c0m
lesbiantube
u tube nudes
fktube.com
www.tube8.com
wanktube
ube 8
tree tube
pronotube
bbw porntube
tiava
poh tube
black porn tubes
hentaitube
rredtube
lolita tube
innertube
gexo xtube
horse sex tube
yutube glasb
sex tube
porn tube.com
tubexxx
tuberculosis bacterium
dirtytube porn
xtube ball
TUBESEX
gas detection tube
zoo porn tube
free porn tube
xtube berlin
bootytube247
freedom tube
jizztube
pornotube x
tou tube
god tube
tit tube
british porn tube
skimtube
free psp tubes adult
beasttube zoo369
slut tube
zootube365
girls kissing on utube
sextube.com
sex tube sites
rede tube
mytube
xtube
celeb boob tube
granny tube
tube tops
rtube
pain tube
redtube competition digg
gaytube
shemale tube
sexy utube
zoo tube 365 com
sex tubes
red porn tube
xtube spy college
boob tube
solartube
tiavas tube
free web tube
homemoviestube.com
tube sex
pussy tube
snake tube xxx
urporntube
studded tube manufacturers
r tube
pornotub
porn hub
rudetube
milf tube
panty pissing xtube
blue tube
pornotube.com acount
lubetube
animals bestiality tube
nudetube
xxx porn tube
free porn tubes
yotube
fetish tube
free sextube video
free beast tube horse cum pussy
fuck tube
rdtube
tube for porn
tree tubes
reed tube
8 tube porn
erotic hot tube
x.tube.com
maturetube.com
adult tube movies
bangtubecom
zoo tube com
red tube videos
hotutubes
download xtube videos free
porn movie tube
croctube
uporntube
pinktube
incest porn tube
hq tube.com
ass nude tube
yu tube sexs
z porntube
sextube
sexytube.com
free extreme pornotube
utube enema viedo
xtube nudist beach
zootube porn
ebony porn tube
japanese porntube
lube tube
tubegals
besattube
enemas utube
tuberose essential oil
footfetishtube
animal bestiality porn tube
tube tube
porn tube sites
gay x tube videos
dude tube
xnxx.com
porn utube
japanese tits tube
utube videos
x tube
bizarre tube
filthtube
bang tube

ACERCA

O que é o RedeRIA ?

O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 1394 entradas vindas de 40 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

Feed: assine já
Twitter: siga-nos
Versão Mobile: aceda aqui

GOOGLE

Votação


Deveria o redeRIA organizar algum evento sobre RIA's ?? Sobre quais plataformas?
Ver Resultados

AUTORES


Eduardo KrausAlexandreBindableDaniel LopesDClick TeamEbercomEdgard DavidsonElvis FernandesFabiel PrestesFábio Batista da SilvaFabio da SilvaFlavia MoreiraGabriela T. PerryIgor MusardoJanderson CardosoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalMario JuniorMário SantosMauro MartinsPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimXAML Cast

PUBLICIDADE








Powered by Wordpress & msdevstudio.com