All pastes #582933 Raw Edit

Untitled

public text v1 · immutable
·published 2007-06-22 04:28 UTC
rendered paste body
import 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");