Olá Desenvolvedor, faça
ou


Galeria de Imagens em AS3
Neste tutorial vamos construir uma galeria de imagens.
Iremos carregar os caminhos das fotos a partir de um arquivo xml, iremos usar a classe Tweener para as transições.
Download da Classe Tweener no Google Code

Vamos criar um novo arquivo, vá em File > New, selecione Flash File (ActionScript 3.0) e clique em OK.
Salve o arquivo como photo_gallery.fla
Seleciona a ferramenta "Rectangle Tool" e desenhe um retângulo 110x110 e escolha a cor #999999 para o preenchimento
Selecione o retângulo e aperte (F8) para convertê-lo em um MovieClip. Defina o seu nome de "thumb" e selecione o registro de ponto central e clique em OK.



Pressione Ctrl L para abrir a Biblioteca(Library). Clique com o botão direito sobre o MovieClip "thumb" e escolha Linkage.
Selecione "Export to ActionScript", defina o nome da classe "thumb" e clique em OK. Selecione o MovieClip "thumb" e apague.

Pressione Ctrl F7 para abrir os Componentes. Selecione o UILoader e arraste-o para o palco. Iremos usar este componente para carregar as miniaturas. Selecione o UILoader e apague, não precisamos dele no palco precisamos apenas na Biblioteca (certifique-se que ele está na biblioteca).
vá em File > New selecione ActionScript File e clique em OK. Vamos construir a classe Thumbnail que está associada com o MovieClip "thumb".

Copie e cole o seguinte código:
ActionScript

package{
	import flash.display.Sprite;
	import fl.containers.UILoader;
	import caurina.transitions.*;
	import flash.events.MouseEvent;
 
	public class Thumbnail extends Sprite {
		private var nume:String;
		private var url:String;
		private var id:int;
		private var loader:UILoader;
 
		function Thumbnail(source:String,itemNr:int,numeThumb:String):void {
			url = source;
			id = itemNr;
			this.nume = numeThumb;
			drawLoader();
			addEventListener(MouseEvent.MOUSE_OVER,onOver);
			addEventListener(MouseEvent.MOUSE_OUT,onOut);
			scaleThumb();
		}
		private function drawLoader():void {
			loader = new UILoader();
			loader.source = url;
			loader.mouseEnabled = false;
			loader.x = -50;
			loader.y = -50;
			addChild(loader);
 
		}
		private function onOver(event:MouseEvent):void {
			Tweener.addTween(this, {scaleX:1,scaleY:1, time:1, transition:"easeoutelastic"});
			Tweener.addTween(this, {alpha:1, time:1, transition:"easeoutelastic"});
		}
		private function onOut(event:MouseEvent):void {
			Tweener.addTween(this, {scaleX:.9,scaleY:.9, time:1, transition:"easeoutelastic"});
			Tweener.addTween(this, {alpha:.5, time:1, transition:"easeoutelastic"});
		}
		private function scaleThumb():void {
			this.scaleX = .9;
			this.scaleY = .9;
			this.alpha = .5;
		}
	}
}

Salve o arquivo como Thumbnail.as

Vamos voltar para a photo_gallery.fla. Nomeie a primeira camada(Layer) de "actions" e crie uma nova (Insert > Timeline > Layer) e de o nome de "background". Deixe seu arquivo com o tamanho Altura(width): 570, Largura(height): 350, taxa de quadros: 30 e clique em OK.

Seleciona a ferramenta "Rectangle Tool" e desenhe um retângulo na camada "background" com as dimensões (570, 350) e a posição em que x: 0, y: 0 e cor #000000
Selecione camada "actions" e pressione (F9) para abrir o painel ActionScript.

Copie e cole o seguinte código:
ActionScript

import fl.containers.UILoader;
import caurina.transitions.*;
 
//---------loading the external xml file-------
var urlRequest:URLRequest = new URLRequest("pics.xml");
var urlLoader:URLLoader = new URLLoader();
var myXML:XML = new XML();
var xmlList:XMLList;
myXML.ignoreWhitespace = true;
urlLoader.addEventListener(Event.COMPLETE,fileLoaded);
urlLoader.load(urlRequest);
//--------holds the paths to the thumbnails-------
var arrayURL:Array = new Array();
//--------holds the paths to the big photos-------
var arrayName:Array = new Array();
//--------holds the thumbnail objects-------
var holderArray:Array = new Array();
//--------represents the number of collumns-------
var nrColumns:uint = 5;
//-------represents the container of our gallery
var sprite:Sprite = new Sprite();
addChild(sprite);
var thumb:Thumbnail;
//-------- the thumbnails container-------
var thumbsHolder:Sprite = new Sprite();
sprite.addChild(thumbsHolder);
//-------- the photoLoader container-------
var loaderHolder:Sprite = new Sprite();
loaderHolder.graphics.beginFill(0xffffff,1);
loaderHolder.graphics.drawRect(0,0,550,330);
loaderHolder.graphics.endFill();
loaderHolder.x = 1000;
loaderHolder.y = 10;
sprite.addChild(loaderHolder);
//-------- loads the big photo-------
var photoLoader:UILoader = new UILoader();
photoLoader.width = 540;
photoLoader.height = 320;
photoLoader.y = 5;
photoLoader.x = 5;
photoLoader.buttonMode = true;
photoLoader.addEventListener(MouseEvent.CLICK,onClickBack);
loaderHolder.addChild(photoLoader);

/* we loop through the xml file
populate the arrayURL, arrayName and position the thumbnalis */
function fileLoaded(event:Event):void {
	myXML = XML(event.target.data);
	xmlList = myXML.children();
	for (var i:int=0; i< xmlList.length(); i  ) {
		var picURL:String = xmlList[ i ].url;
		var picName:String = xmlList[ i ].big_url;
		arrayURL.push(picURL);
		arrayName.push(picName);
		holderArray[ i ] = new Thumbnail(arrayURL[ i ],i,arrayName[ i ]);
		holderArray[ i ].addEventListener(MouseEvent.CLICK,onClick);
		holderArray[ i ].name = arrayName[ i ];
		holderArray[ i ].buttonMode = true;
		if (i < nrColumns) {
			holderArray[ i ].y = 65;
			holderArray[ i ].x = i*110 65;
		} else {
			holderArray[ i ].y = holderArray[ i-nrColumns].y 110;
			holderArray[ i ].x = holderArray[ i-nrColumns].x;
		}
		thumbsHolder.addChild(holderArray[ i ]);
	}
}
//----handles the Click event added to the thumbnails--
function onClick(event:MouseEvent):void {
	photoLoader.source = event.currentTarget.name;
	Tweener.addTween(thumbsHolder, {x:-650, time:1, transition:"easeInElastic"});
	Tweener.addTween(loaderHolder, {x:10, time:1, transition:"easeInElastic"});
	Tweener.addTween(thumbsHolder, {alpha:0, time:1, transition:"linear"});
	Tweener.addTween(loaderHolder, {alpha:1, time:1, transition:"linear"});
}
//----handles the Click event added to the photoLoader----
function onClickBack(event:MouseEvent):void {
	Tweener.addTween(thumbsHolder, {x:0, time:1, transition:"easeInElastic"});
	Tweener.addTween(loaderHolder, {x:1000, time:1, transition:"easeInElastic"});
	Tweener.addTween(thumbsHolder, {alpha:1, time:2, transition:"linear"});
	Tweener.addTween(loaderHolder, {alpha:0, time:2, transition:"linear"});
}

A estrutura do arquivo xml salve como "pics.xml"
XML

<?xml version="1.0" encoding="utf-8"?>

    
        pics/img_1.png
        big_pics/img_1.png
    
    
        pics/img_2.png
big_pics/img_2.png

Vamos a configuração da estrutura das pastas.
Faça uma pasta e de o nome de "photo_gallery". Dentro desta pasta faça duas novas pastas, "pics" e a outra "big_pics". Dentro da pasta "photo_gallery" coloque os arquivos photo_gallery.fla, Thumbnail.as, o pics.xml e a pasta caurina. Você irá obter esta pasta (caurina) após o download doa classe Tweener.
Se você colocou todos os arquivos no lugar certo, colocou as imagens pequenas na pasta "pics" e as grandes na "big_pics" você pode testar o arquivo "photo_gallery.fla" pressionando Ctrl Enter. Você não deve ter qualquer problema.

Isto é tudo. Espero que você aproveite o tutorial. Até a próxima vez se diverta aprendendo ActionScript!

Para baixar os arquivos originais deste tutorial:
Get Adobe Flash player


Autor: Sorin Haidan
Fonte: http://www.flashmagazine.com/Tutorials/detail/as3_photo_gallery/
Thiago Bueno: Meu nome é Thiago Bueno, trabalho na area de desenvolvimento Web, atualmente no desenvolvimento de sistemas em PHP. Trabalhando como Freelancer
Tags: Flash, ActionScript 3, Tweener, Galeria, Imagens, Imagem, XML
Compartilhar