Tool: Flash CS 3
Actionscript 3.0
Una gallery XML semplicissima in Actionscript 3.0, la gallery è corredata di uno scrolling verticale e di una Classe per il preload delle immagini. La classe è riutilizzabile anche per altri progetti in AS 3.0. Le transizioni sulle immagini sono effettuate con l’uso delle caurina.transitions.Tweener, una classe usata per la creazione di tweenings e altre transitions attraverso codice actionscript.
Passiamo al codice:
/* Eseguiamo l’import delle Caurina transition e della Classe CustomLoader*/
import caurina.transitions.*;
import net.iwc.CustomLoader;
// Dichiariamo alcune variabili
var xmlFile:String = “gallery.xml”;
var pathImage:String = “images/”;
var yPos:int;
var nodeCount:int;
var counter:int = 0;
var xml:XML;
var intervalDuration:int = 1000;
var intervalID:int;
var descrArr:Array = new Array;
var lgImageArr:Array = new Array;
var listNode:XML;
var preloadPoint:Point = new Point(10, 10);
var loader_ldr:CustomLoader
//Creiamo in runtime il box che conterrà le clip immagine
var contentBox:MovieClip = new MovieClip();
contentBox.x = 0;
contentBox.y = 0;
addChild(contentBox);
//Creiamo in runtime una mask che poi applicheremo al contentBox
var masker:MovieClip = new MovieClip();
masker.graphics.beginFill(0×333333,1);
masker.graphics.drawRect(0, 5, 100, 380);
masker.graphics.endFill();
addChild(masker);
//Creiamo in runtime un contenitore dove caricheremo l’immagine di dettaglio
var container_mc:MovieClip = new MovieClip();
container_mc.x = 150;
container_mc.y = 10;
addChild(container_mc);
//Aggiungiamo una funzione per il caricamento dell’xml
function callXML():void {
var urlRequest:URLRequest = new URLRequest(xmlFile);
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, xmlLoaded);
loader.load(urlRequest);
}
callXML();
//Aggiungiamo una funzione per leggere il contenuto dei nodi xml
function xmlLoaded(e:Event):void {
var loader:URLLoader = URLLoader(e.target);
xml = new XML(loader.data);
nodeCount = xml..images.smImage.length();
//trace(nodeCount)
for each (listNode in xml..images) {
var descr:String = listNode.descr;
var lgImage:String = listNode.lgImage;
descrArr.push(descr);
lgImageArr.push(lgImage);
}
/*trace(lgImageArr);
trace(descrArr);*/
}
intervalID = setInterval(createList, intervalDuration, descrArr, lgImageArr);
function createList(txt:Array, img:Array):void {
var itemClip:MovieClip = new MovieClip();
itemClip.buttonMode = true;
itemClip.idCur = img[counter]; //creiamo una variabile dinamica idCur
itemClip.curText = txt[counter]; //creiamo una variabile dinamica curText
itemClip.x = 10;
itemClip.y = 10;
itemClip.y = yPos;
yPos += 90;
contentBox.addChild(itemClip);
//trace(yPos)
loader_ldr = new CustomLoader(pathImage + xml..images.smImage[counter], preloadPoint);
loader_ldr.x = 0;
loader_ldr.y = 0;
//loader_ldr.load(new URLRequest(pathImage + xml..product.smImage[counter]));
itemClip.addChild(loader_ldr);
counter++;
//trace(counter);
if (counter == nodeCount) {
//trace(”Clearing Interval”);
clearInterval(intervalID);
}
itemClip.alpha = 0;
Tweener.addTween(itemClip, {alpha:1, time:.7, transition:”linear”});
itemClip.addEventListener(MouseEvent.CLICK, loadContent);
function loadContent(e:MouseEvent) {
//trace(e.currentTarget.idCur)
contentLoaded(e.currentTarget.curText, e.currentTarget.idCur);
}
}
function contentLoaded(text_str:String, pathImg:String) {
var ldr:CustomLoader = new CustomLoader(pathImage + pathImg, preloadPoint);
container_mc.addChild(ldr);
container_mc.alpha = 0;
Tweener.addTween(container_mc, {alpha:1, time:.7, transition:”linear”});
//ldr.load(new URLRequest(pathImage + pathImg));
text_txt.text = text_str;
}
da questo codice ho omesso la parte riguardante il codice sulla scrollbar che trovate all’interno del fla
Download del file