rendered paste bodyimport mx.transitions.Tween;
import mx.transitions.easing.*;
import flash.filters.DropShadowFilter;
import flash.filters.GlowFilter;
//---------------------------------------------------------------+
pagetext._alpha = 0;
leftarrow._alpha = 0;
rightarrow._alpha = 0;
wrapper1.idno = 1;
wrapper2.idno = 2;
wrapper3.idno = 3;
wrapper4.idno = 4;
wrapper5.idno = 5;
wrapper6.idno = 6;
wrapper1.thumb1_mc._alpha = 0;
wrapper2.thumb2_mc._alpha = 0;
wrapper3.thumb3_mc._alpha = 0;
wrapper4.thumb4_mc._alpha = 0;
wrapper5.thumb5_mc._alpha = 0;
wrapper6.thumb6_mc._alpha = 0;
scanningtext._alpha = 0;
returnButton._alpha = 0;
prevnextButton._alpha = 0;
loadingThumbs._alpha = 0;
//---------------------------------------------------------------+
// vars and other utility things
var gallery_xml = new XML();
var URLArray:Array = new Array();
var picThumbArray:Array = new Array();
var picURLArray:Array = new Array();
var eventThumbURL;
gallery_xml.ignoreWhite = true;
var gallery;
var eventArray;
var timelineObj:MovieClip = this;
var eventThumbsArray:Array = new Array();
var pages:Number;
var currpage:Number = 1;
leftarrow.arrowText._alpha = 0;
rightarrow.arrowText._alpha = 0;
var pageNumberGlow:GlowFilter = new GlowFilter(0xFFFFFF, 35, 20, 20, 7, 3);
var elabelGlow:GlowFilter = new GlowFilter(0xFFFFFF, 15, 15, 25, 3, 2);
var gf:GlowFilter = new GlowFilter(0xFFFFFF, .2, 10, 10, 2, 2, true);
pagetext.filters = [pageNumberGlow];
leftarrow.filters = [pageNumberGlow];
rightarrow.filters = [pageNumberGlow];
// MCL and methods for event display
var mcl_mcl = new MovieClipLoader();
mcl_mcl.onLoadProgress = function (targetMC, loadedBytes, totalBytes) {
var id = targetMC._parent.idno;
// var percentloaded = Math.ceil((loadedBytes / totalBytes) * 100);
eval("elabel" + id).text = "Loading";
}
mcl_mcl.onLoadStart = function (targetMC) {
eval("elabel"+id)._visible = true;
eval("elabel"+id)._alpha = 100;
var id = targetMC._parent.idno;
if (id >= 4) {
eval("elabel" + id)._y = targetMC._parent._y + 113 + 3;
} else {
eval("elabel" + id)._y = targetMC._parent._y - 20;
}
}
mcl_mcl.onLoadInit = function (targetMC) {
var gfBX:Tween = new Tween(gf, "blurX", Elastic.easeOut, 10, 10, 1, true);
var gfBY:Tween = new Tween(gf, "blurY", Elastic.easeOut, 5, 5, 1, true);
var id = targetMC._parent.idno;
eval("elabel" + id).filters = [elabelGlow];
eval("elabel" + id).text = eval("elabel" + id).nameProperty;
gfBX.onMotionChanged = function() {
targetMC._parent.filters = [gf];
}
targetMC._parent.onRollOver = function() {
gfBX.continueTo(20, 2);
gfBY.continueTo(5, 2);
}
targetMC._parent.onRollOut = function() {
gfBX.continueTo(10, 2);
gfBY.continueTo(5, 2);
}
eval("elabel" + id)._alpha = 0;
var label_tween:Tween = new Tween(eval("elabel" + id), "_x", Regular.easeOut, targetMC._parent._x + 150, targetMC._parent._x + 53, 20, false);
var labelalpha_tween:Tween = new Tween(eval("elabel" + id), "_alpha", Strong.easeOut, 0, 100, 200, false);
var alpha_tween:Tween = new Tween(targetMC, "_alpha", Regular.easeOut, 0, 100, 50, false);
}
mcl_mcl.onLoadError = function (targetMC, errorCode)
{
var id = targetMC._parent.idno;
eval("elabel" + id)._alpha = 100;
eval("text" + id).text = errorCode;
}
generateArrayofEventURLs = function() {
for (i = 0; i < eventArray.length; i++) {
URLArray[i] = eventArray[i].attributes.url;
}
}
generateArrayofEventThumbs = function() {
for (i = 0; i < eventArray.length; i++) {
eventThumbsArray[i] = eventArray[i].attributes.thumb;
}
}
flushContainers = function() {
for (i = 1; i < 7; i++) {
wrapper = timelineObj["wrapper" + i];
mcl_mcl.unloadClip(wrapper["thumb"+i+"_mc"]);
trace(wrapper['thumb'+i+'_mc']);
}
}
flushLabels = function() {
for (i = 1; i < 7; i++) {
timelineObj["elabel" + i].text = "";
}
}
displayPageNumber = function() {
var currAlpha = pagetext._alpha;
var currArrowsAlpha = leftarrow._alpha;
var leftarrowalpha:Tween = new Tween(leftarrow, "_alpha", Regular.easeOut, 0, 100, 32, false);
var rightarrow:Tween = new Tween(rightarrow, "_alpha", Regular.easeOut, 0, 100, 32, false);
var pagetween:Tween = new Tween(pagetext, "_alpha", Regular.easeOut, currAlpha, 0, 16, false);
pagetween.onMotionFinished = function() {
pagetext.text = currpage;
var pagetween:Tween = new Tween(pagetext, "_alpha", Regular.easeOut, 0, 100, 16, false);
}
}
leftarrow.onRelease = function() {
if (currpage != 1) {
currpage--;
loadPage(currpage);
}
}
rightarrow.onRelease = function() {
if (currpage < pages) {
currpage++;
loadPage(currpage);
}
}
loadPage = function(page:Number) {
flushContainers();
flushLabels();
var endIndex = (5 * page) + (page - 1);
var beginningIndex = endIndex - 5;
for (i = beginningIndex; i <= endIndex; i++) {
if (i < eventArray.length) {
var containerNumber = i%6+1;
eval("elabel" + containerNumber).nameProperty = eventArray[i].attributes.name;
wrapper = timelineObj["wrapper" + containerNumber];
mcl_mcl.loadClip(eventThumbsArray[i], wrapper["thumb"+containerNumber+"_mc"]);
wrapper.eventNumber = i;
wrapper.onRelease = function() {
trace('starting to load pictures for an event, event#: ' + this.eventNumber);
generateArrayofPictureThumbs(this.eventNumber);
generateArrayofPictureURLs(this.eventNumber);
generatePictureDisplay(this.eventNumber);
}
}
}
displayPageNumber();
}
/* *************** METHODS FOR PICTURE STACK DISPLAY ***************
*****************************************************************
*/
// drop shadow
var dropShadow:DropShadowFilter = new DropShadowFilter(3, 45, 0x000000, .15, 5, 5, 52, 3);
// loads the thumbnails
var thumb_mcl = new MovieClipLoader();
var stackMoveEnabled:Boolean = true;
generatePictureDisplay = function(eventNo:Number) {
// clear the stage
clearStage();
// create the holder MC called imageStack
timelineObj.createEmptyMovieClip("imageStack_mc", timelineObj.getNextHighestDepth());
// increase the alpha of the return button
var returnTextFadeInWooo:Tween = new Tween(returnButton, "_alpha", Strong.easeOut, 0, 100, 128, false);
// create the container MCs
trace('loading these pictures: ' + picThumbArray);
thumbInit();
for (var i = 0; i < picThumbArray.length; i++) {
// created # of containers is okay - krilnon
imageStack_mc.createEmptyMovieClip("picContainer"+i, i);
imageStack_mc["picContainer"+i]._alpha = 0;
thumb_mcl.loadClip(picThumbArray[i],imageStack_mc["picContainer"+i]); // picThumbArray[i] represents the relative URL of the image
}
// position the MCs
imageStack_mc._x = 805;
imageStack_mc._y = 255 - (83*picThumbArray.length)/2;
imageStack_mc.picContainer0._y = 0;
for (var i = 1; i < picThumbArray.length; i++) {
imageStack_mc["picContainer"+i]._y = imageStack_mc["picContainer"+(i-1)]._y + 75 + 8;
}
}
var count = 0; // this count lets the callback functions know when the first begins loading and when the last one is done loading
thumbInit();
function thumbInit():void {
thumb_mcl = new MovieClipLoader();
count = 0;
thumb_mcl.onLoadStart = function (targetMC) {
if (count == 0) {
var loadTextFadeIn:Tween = new Tween(loadingThumbs, "_alpha", Strong.easeOut, 0, 100, 32, false);
}
}
thumb_mcl.onLoadInit = function (targetMC) {
if (count == picThumbArray.length - 1) {
var loadTextFadeOut:Tween = new Tween(loadingThumbs, "_alpha", Strong.easeOut, 100, 0, 32, false);
loadTextFadeOut.onMotionFinished = function() {
// set the mask
imageStack_mc.setMask(thumbMask_mc);
for (var i = 0; i < picThumbArray.length; i++) {
imageStack_mc["picContainer"+i].filters = [dropShadow];
imageStack_mc["picContainer"+i].urlindex = i;
var thumbsFadeIn:Tween = new Tween(imageStack_mc["picContainer"+i], "_alpha", Strong.easeOut, 0, 100, 128, false);
// **********************************************************************************************
// IF I ENABLE THIS, THE STACK APPEARS, BUT IT HAS THE OLD STACK ON IT! ITS LIKE
// THE DELETE COMMAND DIDN'T WORK AT ALL.
//***********************************************************************************************
var stackFadeIn:Tween = new Tween(imageStack_mc, "_alpha", Strong.easeOut, 0, 100, 128, false);
//***********************************************************************************************
imageStack_mc["picContainer"+i].onRelease = function() {
if (!currentlyTransitioning) {
loadBigPicture(this);
}
}
}
}
}
count++;
}
}
// move the stack based on mouse's position
// create the listener and add it to Mouse
var mouseListener:Object = new Object();
Mouse.addListener(mouseListener);
// define function
onEnterFrame = function() {
if (stackMoveEnabled) {
someConstant = 30;
lastIndex = picThumbArray.length - 1;
lastImage = imageStack_mc["picContainer"+lastIndex];
firstImage = imageStack_mc.picContainer0;
if (_xmouse > 750 && _xmouse < 950) {
if (_ymouse < 100) {
imageStack_mc._y += (45 - imageStack_mc._y) / someConstant;
} else if (_ymouse > 400) {
var target = (540 - (83 * picThumbArray.length + 75));
imageStack_mc._y += (target - imageStack_mc._y) / someConstant;
}
}
}
}
clearStage = function() {
var cleanup:Tween;
var cleanup5:Tween;
var cleanup2:Tween = new Tween(leftarrow, "_alpha", Strong.easeOut, 100, 0, 32, false);
var cleanup3:Tween = new Tween(rightarrow, "_alpha", Strong.easeOut, 100, 0, 32, false);
var cleanup4:Tween = new Tween(pagetext, "_alpha", Strong.easeOut, 100, 0, 32, false);
for (var i = 1; i <= 6; i++) {
wrapper = timelineObj["wrapper"+i];
cleanup1 = new Tween(wrapper, "_alpha", Strong.easeOut, 100, 0, 32, false);
cleanup5 = new Tween(eval("elabel"+i), "_alpha", Strong.easeOut, 100, 0, 32, false);
}
cleanup1.onMotionFinished = function() {
for (var i = 1; i <= 6; i++) {
wrapper = timelineObj["wrapper"+i];
mcl_mcl.unloadClip(wrapper["thumb"+i+"_mc"]);
eval("elabel"+i)._visible = false; // #$^%$^@$$&**)(*&%^%$#$%^&*(*&^%$#$%^&*(*&^REMEMBER TO MAKE THEM VISIBLE AGAIN.****888
}
}
}
generateArrayofPictureThumbs = function(eventNo:Number) {
var pics = eventArray[eventNo].childNodes;
picThumbArray = new Array();
for (i = 0; i < pics.length; i++) {
picThumbArray[i] = URLArray[eventNo] + pics[i].attributes.thumb;
}
}
generateArrayofPictureURLs = function(eventNo:Number) {
var pics = eventArray[eventNo].childNodes;
for ( i = 0; i < pics.length; i++) {
picURLArray[i] = URLArray[eventNo] + pics[i].attributes.url;
}
}
//************************************************************************
// These methods are for the loading of the BIG images.
//************************************************************************
var bigPicture_mcl = new MovieClipLoader();
var currentlyTransitioning = false;
var currthumb;
var oldstackY;
var oldPositionX;
var oldPositionY;
var finalY;
loadBigPicture = function(thumbnail:MovieClip) {
//undoPreviousLoad();
currthumb = thumbnail;
stackMoveEnabled = false;
oldstackY = imageStack_mc._y;
oldPositionX = thumbnail._x;
oldPositionY = thumbnail._y;
finalY = (83 * picThumbArray.length) / 2 - 28;
finalStackY = 250 - (83 * picThumbArray.length) / 2;
var customTweenThing1:Tween = new Tween(imageStack_mc, "_y", Back.easeOut, oldstackY, finalStackY, 128, false);
currentlyTransitioning = true;
customTweenThing1.onMotionFinished = function() {
thumbnail.swapDepths(imageStack_mc.getNextHighestDepth());
var customTweenThing2:Tween = new Tween(thumbnail, "_y", Strong.easeOut, oldPositionY, finalY, 64, false);
var customTweenThing3:Tween = new Tween(thumbnail, "_x", Back.easeOut, oldPositionX, -40, 64, false);
customTweenThing3.onMotionFinished = function() {
bigPicture_mcl.loadClip(picURLArray[thumbnail.urlindex], bigContainer);
}
}
}
// move the thumb back, then re-enable clicking and scrolling of the stack
moveThumbBack = function() {
var fadeOutScanningText:Tween = new Tween(scanningtext, "_alpha", Regular.easeOut, 100, 0, 32, false);
var moveThumbBackTweenX:Tween = new Tween(currthumb, "_x", Regular.easeOut, -40, oldPositionX, 32, false);
var moveThumbBackTweenY:Tween = new Tween(currthumb, "_y", Regular.easeOut, finalY, oldPositionY, 32, false);
moveThumbBackTweenY.onMotionFinished = function() {
currentlyTransitioning = false;
stackMoveEnabled = true;
}
}
undoPreviousLoad = function() {
currBigAlpha = bigContainer._alpha;
var BigPicFadeOut:Tween = new Tween(bigContainer, "_alpha", Strong.easeOut, 100, 0, 32, false);
}
var idunno = true;
var backforth:Tween;
var count;
var bigPicLoaded;
var interval2;
bigPicture_mcl.onLoadStart = function() {
count = 0;
scanner.swapDepths(timelineObj.getNextHighestDepth());
var fadeInScanningText:Tween = new Tween(scanningtext, "_alpha", Regular.easeOut, 0, 100, 32, false);
scanningtext.swapDepths(timelineObj.getNextHighestDepth());
bigPicLoaded = false;
interval2 = setInterval(backAndForth, 64*25);
}
backAndForth = function() {
if (bigPicLoaded && count >= 2) {
var currthumbx = currthumb._x;
clearInterval(interval2);
var backforth2:Tween = new Tween(currthumb, "_x", Strong.easeOut, currthumbx, -40, 3, true);
backforth2.onMotionFinished = function() {
displayBigPic();
moveThumbBack();
}
} else {
if (idunno) {
backforth = new Tween(currthumb, "_x", Strong.easeOut, -40, -200, 3, true);
idunno = false;
} else {
backforth = new Tween(currthumb, "_x", Strong.easeOut, -200, -40, 3, true);
idunno = true;
}
count++;
}
}
displayBigPic = function() {
var BigPicFadeIn:Tween = new Tween(bigContainer, "_alpha", Strong.easeOut, 0, 100, 32, false);
}
bigPicture_mcl.onLoadInit = function() {
bigPicLoaded = true;
}
//************************************************************************
// These methods are for returning to the events display.
//************************************************************************
returnButton.onRelease = function() {
undoPreviousLoad();
currloadingthumbs = loadingThumbs._alpha;
currscanning = scanningtext._alpha;
var cleanTween1:Tween = new Tween(imageStack_mc, "_alpha", Strong.easeOut, 100, 0, 128, false);
var cleanTween2:Tween = new Tween(scanningtext, "_alpha", Strong.easeOut, currscanning, 0, 128, false);
var cleanTween3:Tween = new Tween(loadingThumbs, "_alpha", Strong.easeOut, currloadingthumbs, 0, 128, false);
var cleanTween4:Tween = new Tween(returnButton, "_alpha", Strong.easeOut, 100, 0, 128, false);
cleanTween1.onMotionFinished = function() {
for (var i = 0; i < picThumbArray.length; i++) {
imageStack_mc["picContainer"+i].removeMovieClip();
delete imageStack_mc["picContainer"+i];
}
imageStack_mc.removeMovieClip();
delete imageStack_mc;
trace(imageStack_mc);
wrapper1._alpha = 100;
wrapper2._alpha = 100;
wrapper3._alpha = 100;
wrapper4._alpha = 100;
wrapper5._alpha = 100;
wrapper6._alpha = 100;
for (var i = 1; i <= 6; i++) {
eval("elabel"+i)._visible = true;
}
loadPage(1);
}
}
//************************************************************************
// This is what happens in the beginning =)
//************************************************************************
gallery_xml.onLoad = function(success){
if (success) {
gallery = gallery_xml.firstChild;
eventArray = gallery.childNodes;
generateArrayofEventThumbs();
generateArrayofEventURLs();
pages = Math.ceil(eventArray.length / 6);
loadPage(1);
}
else {
text1.text = "XML Load Failed";
text2.text = "XML Load Failed";
text3.text = "XML Load Failed";
text4.text = "XML Load Failed";
text5.text = "XML Load Failed";
text6.text = "XML Load Failed";
}
}
gallery_xml.load("piclist.xml");