I’ve been attempting (unsucessfully) to expand on sbeeners code for the photo gallery (on this site).
sbeener sets up an array with the photos in it and uses functions to load one photo from the array’s position.
I’m trying to add some AS in there that sets up an additional array (of text strings/captions) and then sets the index of that additional array to match the array of photos and loads the value from that array into a dynamic text box.
So far I’m a little stumped on how to execute this.
I’ll attach the code (sbeeners w/my alterations). Any help would be awesome! I’ve seen lots of people posting about this in forums and not getting any response.
Maybe if we get it working we can update the tute on kirupa!
//Code written by sbeener (suprabeener)
/*
i wrote this code, but you can use and abuse it however you like.
the methods are defined in the order which they occur to make it
easier to understand.
*/
// variables ------------------------------------------
// put the path to your pics here, include the slashes (ie. "pics/")
// leave it blank if they're in the same directory
this.pathToPics = "iraqpics/";
// fill this array with your pics
this.pArray = ["iraq1.jpg", "iraq2.jpg", "iraq3.jpg", "iraq4.jpg", "iraq5.jpg", "iraq6.jpg", "iraq7.jpg", "iraq8.jpg"];
this.cArray = ["caption1", "caption2", "caption3", "caption4", "caption5", "caption6", "caption7", "caption8"];
this.fadeSpeed = 20;
this.pIndex = 0;
// MovieClip methods ----------------------------------
// d=direction; should 1 or -1 but can be any number
//loads an image automatically when you run animation
loadMovie(this.pathToPics+this.pArray[0], _root.photo);
MovieClip.prototype.changePhoto = function(d) {
// make sure pIndex falls within pArray.length
this.pIndex = (this.pIndex+d)%this.pArray.length;
if (this.pIndex<0) {
this.pIndex += this.pArray.length;
}
this.onEnterFrame = fadeOut;
};
this.cindex = this.pindex;
caption.text = this.cindex;
MovieClip.prototype.fadeOut = function() {
if (this.photo._alpha>this.fadeSpeed) {
this.photo._alpha -= this.fadeSpeed;
} else {
this.loadPhoto();
}
};
MovieClip.prototype.loadPhoto = function() {
// specify the movieclip to load images into
var p = _root.photo;
//------------------------------------------
p._alpha = 0;
p.loadMovie(this.pathToPics+this.pArray[this.pIndex]);
this.onEnterFrame = loadMeter;
};
MovieClip.prototype.loadMeter = function() {
var i, l, t;
l = this.photo.getBytesLoaded();
t = this.photo.getBytesTotal();
if (t>0 && t == l) {
this.onEnterFrame = fadeIn;
} else {
trace(l/t);
}
};
MovieClip.prototype.fadeIn = function() {
if (this.photo._alpha<100-this.fadeSpeed) {
this.photo._alpha += this.fadeSpeed;
} else {
this.photo._alpha = 100;
this.onEnterFrame = null;
}
};
// Actions -----------------------------------------
// these aren't necessary, just an example implementation
this.onKeyDown = function() {
if (Key.getCode() == Key.LEFT) {
this.changePhoto(-1);
} else if (Key.getCode() == Key.RIGHT) {
this.changePhoto(1);
}
};
Key.addListener(this);